Redid interface

- Redid the interface with everything now at the bottom.
- Advisors can now address the mayor and city
- Updated tax window with red and green arrow icons
- Tweaked income algorithm
This commit is contained in:
Tony Bark 2021-05-27 13:54:08 -04:00
parent 7a4619f874
commit d3350dd8a6
18 changed files with 529 additions and 186 deletions

2
.gitignore vendored
View file

@ -171,4 +171,4 @@ $RECYCLE.BIN/
# Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option) # Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option)
/export export/**

View file

@ -2,7 +2,7 @@
![Screenshot](screenshot.png) ![Screenshot](screenshot.png)
City Limits is a re-imagining of SimCity Classic using City Limits is a re-imagining of SimCity Classic that brings modern city building concepts to the classic game.
## Getting Started ## Getting Started

View file

@ -1,6 +1,6 @@
{ {
"1": { "1": {
"name": "Roll up your sleeves, Mayor!", "name": "Roll up your sleeves, Mayor!",
"text": "Welcome to City Limits! I'm Cindy, and I'll be your city planner. I'll help you with zoning, land values, and handling connections to and from the city." "text": "Nice to meet you, Mayor [name]. I'm Cindy, your city planner. I'll be helping you with zoning, land values, and handling connections to and from the city."
} }
} }

View file

@ -9,6 +9,6 @@
}, },
"3": { "3": {
"name": "Tire Recylcing Proposed", "name": "Tire Recylcing Proposed",
"text": "Mayor [name], used tires a big are a big problem. They waste land space or accumlate in piles that, if ignited, pollute our air. Do you know that tires could be recycled and used in paving material? It can even reduce the cost of building roads. [city] would greatly benefit from having a tire recylcing program.\nWe could set the sheels in motion today, if you agree to enact the Tire Recylcing Program." "text": "Mayor [name], used tires a big are a big problem. They waste land space or accumlate in piles that, if ignited, pollute our air. Do you know that tires could be recycled and used in paving material? It can even reduce the cost of building roads. [city] would greatly benefit from having a tire recylcing program.\nWe could set the wheels in motion today, if you agree to enact the Tire Recylcing Program."
} }
} }

View file

@ -126,10 +126,10 @@
"text": "From The Desk Of Wise Guy Sammy: You Can't Outwait A Bureaucracy." "text": "From The Desk Of Wise Guy Sammy: You Can't Outwait A Bureaucracy."
}, },
"53": { "53": {
"text": "Mr. Fluffys Futures Rise in the Wake of Kitty Kibble Shortage Rumors." "text": "Mr. Fluffy's Futures Rise in the Wake of Kitty Kibble Shortage Rumors."
}, },
"54": { "54": {
"text": "[species] Discovers Picayune Newspaper in Trash." "text": "[species] Discovers Picayune Newspaper Lying on the Ground; Throws It Away."
}, },
"55": { "55": {
"text": "Local [species] Bill Flopsby Heads County Commission On Snuggles And Hugs." "text": "Local [species] Bill Flopsby Heads County Commission On Snuggles And Hugs."
@ -151,8 +151,5 @@
}, },
"61": { "61": {
"text": "Bus Misses Turn, Dozens Late For Work." "text": "Bus Misses Turn, Dozens Late For Work."
},
"62": {
"text": "."
} }
} }

View file

@ -69,20 +69,21 @@ anchor_bottom = 1.0
script = ExtResource( 37 ) script = ExtResource( 37 )
__meta__ = { __meta__ = {
"_edit_lock_": true, "_edit_lock_": true,
"_edit_use_anchors_": false "_edit_use_anchors_": true
} }
[node name="Console" parent="Controls/Windows" instance=ExtResource( 6 )] [node name="Console" parent="Controls/Windows" instance=ExtResource( 6 )]
anchor_left = 0.52391 anchor_left = 0.590492
anchor_top = 0.0691609 anchor_top = 0.0604199
anchor_right = 0.918441 anchor_right = 0.985023
anchor_bottom = 0.320828 anchor_bottom = 0.312087
rect_min_size = Vector2( 400, 150 ) rect_min_size = Vector2( 400, 150 )
resizable = true resizable = true
[node name="CityPlanner" parent="Controls/Windows" instance=ExtResource( 4 )] [node name="CityPlanner" parent="Controls/Windows" instance=ExtResource( 4 )]
[node name="TaxWindow" parent="Controls/Windows" instance=ExtResource( 32 )] [node name="TaxWindow" parent="Controls/Windows" instance=ExtResource( 32 )]
visible = false
anchor_left = 0.297863 anchor_left = 0.297863
anchor_top = 0.409167 anchor_top = 0.409167
anchor_right = 0.702137 anchor_right = 0.702137
@ -250,162 +251,189 @@ __meta__ = {
[node name="Ordinance" parent="Controls/Windows" instance=ExtResource( 44 )] [node name="Ordinance" parent="Controls/Windows" instance=ExtResource( 44 )]
[node name="Menu" type="Panel" parent="Controls"] [node name="Status" type="Panel" parent="Controls"]
anchor_left = 1.0 anchor_top = 0.860396
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.00206
margin_left = -57.0 __meta__ = {
margin_top = -18.0 "_edit_lock_": true,
"_edit_use_anchors_": true
}
[node name="StatCtr" type="HBoxContainer" parent="Controls/Status"]
anchor_left = 0.00119134
anchor_top = 0.489112
anchor_right = 1.00119
anchor_bottom = 0.489112
margin_left = 0.940155
margin_top = -30.0
margin_right = 0.940063
margin_bottom = 6.0
custom_constants/separation = 50
alignment = 1
script = ExtResource( 3 )
__meta__ = {
"_edit_lock_": true,
"_edit_use_anchors_": false
}
[node name="ButtonCtr" type="HBoxContainer" parent="Controls/Status/StatCtr"]
margin_left = 241.0
margin_right = 575.0
margin_bottom = 36.0
custom_constants/separation = 10
alignment = 1
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="ButtonCtr" type="VBoxContainer" parent="Controls/Menu"] [node name="TaxBtn" type="Button" parent="Controls/Status/StatCtr/ButtonCtr"]
anchor_top = 0.0420712 margin_right = 42.0
anchor_right = 1.0
anchor_bottom = 1.0
custom_constants/separation = 5
__meta__ = {
"_edit_use_anchors_": true
}
[node name="TaxBtn" type="Button" parent="Controls/Menu/ButtonCtr"]
margin_left = 7.0
margin_right = 49.0
margin_bottom = 36.0 margin_bottom = 36.0
hint_tooltip = "RCI" hint_tooltip = "RCI"
size_flags_horizontal = 4 size_flags_horizontal = 4
icon = ExtResource( 7 ) icon = ExtResource( 7 )
[node name="ToolsBtn" type="Button" parent="Controls/Menu/ButtonCtr"] [node name="ToolsBtn" type="Button" parent="Controls/Status/StatCtr/ButtonCtr"]
margin_left = 7.0 margin_left = 52.0
margin_top = 41.0 margin_right = 94.0
margin_right = 49.0 margin_bottom = 36.0
margin_bottom = 72.0
hint_tooltip = "Tools" hint_tooltip = "Tools"
size_flags_horizontal = 4 size_flags_horizontal = 4
icon = ExtResource( 36 ) icon = ExtResource( 36 )
[node name="AdvsiorBtn" type="Button" parent="Controls/Menu/ButtonCtr"] [node name="AdvsiorBtn" type="Button" parent="Controls/Status/StatCtr/ButtonCtr"]
margin_left = 7.0 margin_left = 104.0
margin_top = 77.0 margin_right = 146.0
margin_right = 49.0 margin_bottom = 36.0
margin_bottom = 103.0
hint_tooltip = "Meet" hint_tooltip = "Meet"
size_flags_horizontal = 4 size_flags_horizontal = 4
icon = ExtResource( 38 ) icon = ExtResource( 38 )
[node name="SettingsBtn" type="Button" parent="Controls/Menu/ButtonCtr"] [node name="SettingsBtn" type="Button" parent="Controls/Status/StatCtr/ButtonCtr"]
margin_left = 7.0 margin_left = 156.0
margin_top = 108.0 margin_right = 198.0
margin_right = 49.0 margin_bottom = 36.0
margin_bottom = 140.0
hint_tooltip = "Meet" hint_tooltip = "Meet"
size_flags_horizontal = 4 size_flags_horizontal = 4
icon = ExtResource( 43 ) icon = ExtResource( 43 )
[node name="Status" type="Panel" parent="Controls"] [node name="VSeparator" type="VSeparator" parent="Controls/Status/StatCtr/ButtonCtr"]
anchor_left = -0.0126953 margin_left = 208.0
anchor_top = 0.908333 margin_right = 212.0
anchor_right = 1.01953 margin_bottom = 36.0
anchor_bottom = 1.0
__meta__ = {
"_edit_use_anchors_": true
}
[node name="StatCtr" type="HBoxContainer" parent="Controls/Status"] [node name="TurtleBtn" type="Button" parent="Controls/Status/StatCtr/ButtonCtr"]
anchor_left = 0.0302744 margin_left = 222.0
anchor_top = 0.527271 margin_right = 263.0
anchor_right = 0.808894 margin_bottom = 36.0
anchor_bottom = 0.981815 hint_tooltip = "Slow"
margin_bottom = -3.8147e-06 toggle_mode = true
custom_constants/separation = 50 icon = ExtResource( 40 )
[node name="CheetaBtn" type="Button" parent="Controls/Status/StatCtr/ButtonCtr"]
margin_left = 273.0
margin_right = 320.0
margin_bottom = 36.0
hint_tooltip = "Fast"
toggle_mode = true
icon = ExtResource( 41 )
[node name="VSeparator2" type="VSeparator" parent="Controls/Status/StatCtr/ButtonCtr"]
margin_left = 330.0
margin_right = 334.0
margin_bottom = 36.0
[node name="NameDate" type="VBoxContainer" parent="Controls/Status/StatCtr"]
margin_left = 625.0
margin_right = 705.0
margin_bottom = 36.0
alignment = 1 alignment = 1
script = ExtResource( 3 )
__meta__ = {
"_edit_use_anchors_": true
}
[node name="CityNameLbl" type="Label" parent="Controls/Status/StatCtr"] [node name="CityNameLbl" type="Label" parent="Controls/Status/StatCtr/NameDate"]
margin_left = 237.0 margin_top = 2.0
margin_top = 5.0 margin_right = 80.0
margin_right = 303.0 margin_bottom = 16.0
margin_bottom = 19.0
text = "City Name" text = "City Name"
align = 1
[node name="YearCtr" type="HBoxContainer" parent="Controls/Status/StatCtr"] [node name="YearCtr" type="HBoxContainer" parent="Controls/Status/StatCtr/NameDate"]
margin_left = 353.0 margin_top = 20.0
margin_right = 433.0 margin_right = 80.0
margin_bottom = 25.0 margin_bottom = 34.0
[node name="CalIcon" type="TextureRect" parent="Controls/Status/StatCtr/YearCtr"] [node name="CalIcon" type="TextureRect" parent="Controls/Status/StatCtr/NameDate/YearCtr"]
margin_right = 10.0 margin_right = 10.0
margin_bottom = 25.0 margin_bottom = 14.0
texture = ExtResource( 8 ) texture = ExtResource( 8 )
stretch_mode = 4 stretch_mode = 4
[node name="CalendarLbl" type="Label" parent="Controls/Status/StatCtr/YearCtr"] [node name="CalendarLbl" type="Label" parent="Controls/Status/StatCtr/NameDate/YearCtr"]
margin_left = 14.0 margin_left = 14.0
margin_top = 5.0
margin_right = 80.0 margin_right = 80.0
margin_bottom = 19.0 margin_bottom = 14.0
text = "1/1/12000" text = "1/1/12000"
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="BudgetCtr" type="HBoxContainer" parent="Controls/Status/StatCtr"] [node name="PopBudget" type="VBoxContainer" parent="Controls/Status/StatCtr"]
margin_left = 483.0 margin_left = 755.0
margin_right = 509.0 margin_right = 781.0
margin_bottom = 25.0 margin_bottom = 36.0
alignment = 1
[node name="CoinsIcon" type="TextureRect" parent="Controls/Status/StatCtr/BudgetCtr"] [node name="BudgetCtr" type="HBoxContainer" parent="Controls/Status/StatCtr/PopBudget"]
margin_top = 2.0
margin_right = 26.0
margin_bottom = 16.0
[node name="CoinsIcon" type="TextureRect" parent="Controls/Status/StatCtr/PopBudget/BudgetCtr"]
margin_right = 14.0 margin_right = 14.0
margin_bottom = 25.0 margin_bottom = 14.0
texture = ExtResource( 42 ) texture = ExtResource( 42 )
stretch_mode = 4 stretch_mode = 4
[node name="BudgetLbl" type="Label" parent="Controls/Status/StatCtr/BudgetCtr"] [node name="BudgetLbl" type="Label" parent="Controls/Status/StatCtr/PopBudget/BudgetCtr"]
margin_left = 18.0 margin_left = 18.0
margin_top = 5.0
margin_right = 26.0 margin_right = 26.0
margin_bottom = 19.0 margin_bottom = 14.0
text = "0" text = "0"
[node name="PopCtr" type="HBoxContainer" parent="Controls/Status/StatCtr"] [node name="PopCtr" type="HBoxContainer" parent="Controls/Status/StatCtr/PopBudget"]
margin_left = 559.0 margin_top = 20.0
margin_right = 585.0 margin_right = 26.0
margin_bottom = 25.0 margin_bottom = 34.0
[node name="PopIcon" type="TextureRect" parent="Controls/Status/StatCtr/PopCtr"] [node name="PopIcon" type="TextureRect" parent="Controls/Status/StatCtr/PopBudget/PopCtr"]
margin_right = 14.0 margin_right = 14.0
margin_bottom = 25.0 margin_bottom = 14.0
texture = ExtResource( 2 ) texture = ExtResource( 2 )
stretch_mode = 4 stretch_mode = 4
[node name="PopLbl" type="Label" parent="Controls/Status/StatCtr/PopCtr"] [node name="PopLbl" type="Label" parent="Controls/Status/StatCtr/PopBudget/PopCtr"]
margin_left = 18.0 margin_left = 18.0
margin_top = 5.0
margin_right = 26.0 margin_right = 26.0
margin_bottom = 19.0 margin_bottom = 14.0
text = "0" text = "0"
[node name="TickerBg" type="ColorRect" parent="Controls/Status"] [node name="TickerBg" type="ColorRect" parent="Controls/Status"]
anchor_left = 0.0331126 anchor_left = 0.00073738
anchor_top = 0.0363635 anchor_top = 1.0
anchor_right = 0.808894 anchor_right = 1.00074
anchor_bottom = 0.436362 anchor_bottom = 1.0
margin_top = -28.0
color = Color( 0, 0, 0, 1 ) color = Color( 0, 0, 0, 1 )
script = ExtResource( 35 ) script = ExtResource( 35 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": true "_edit_use_anchors_": false
} }
[node name="TickerTxt" type="RichTextLabel" parent="Controls/Status/TickerBg"] [node name="TickerTxt" type="RichTextLabel" parent="Controls/Status/TickerBg"]
anchor_left = 0.00601721 anchor_left = 0.0145068
anchor_top = 0.181818 anchor_top = 0.17248
anchor_right = 0.994298 anchor_right = 0.987427
anchor_bottom = 0.954545 anchor_bottom = 0.93248
margin_top = 0.687989 margin_top = 0.687989
margin_bottom = 0.687988 margin_bottom = 0.687988
__meta__ = { __meta__ = {
@ -413,38 +441,12 @@ __meta__ = {
"_edit_use_anchors_": true "_edit_use_anchors_": true
} }
[node name="SpeedCtr" type="HBoxContainer" parent="Controls/Status"]
anchor_left = 0.816463
anchor_top = 0.181818
anchor_right = 0.918639
anchor_bottom = 0.818179
alignment = 1
__meta__ = {
"_edit_use_anchors_": true
}
[node name="TurtleBtn" type="Button" parent="Controls/Status/SpeedCtr"]
margin_left = 7.0
margin_right = 48.0
margin_bottom = 35.0
hint_tooltip = "Slow"
toggle_mode = true
icon = ExtResource( 40 )
[node name="CheetaBtn" type="Button" parent="Controls/Status/SpeedCtr"]
margin_left = 52.0
margin_right = 99.0
margin_bottom = 35.0
hint_tooltip = "Fast"
toggle_mode = true
icon = ExtResource( 41 )
[connection signal="timeout" from="DayCycle" to="." method="_on_DayCycle_timeout"] [connection signal="timeout" from="DayCycle" to="." method="_on_DayCycle_timeout"]
[connection signal="timeout" from="RotateNews" to="Controls/Status/TickerBg" method="_on_RotateNews_timeout"] [connection signal="timeout" from="RotateNews" to="Controls/Status/TickerBg" method="_on_RotateNews_timeout"]
[connection signal="pressed" from="Controls/Windows/ToolsWindow/CenterCtr/VertCtr/LargeCtr/CoalBtn" to="Map" method="_on_CoalBtn_pressed"] [connection signal="pressed" from="Controls/Windows/ToolsWindow/CenterCtr/VertCtr/LargeCtr/CoalBtn" to="Map" method="_on_CoalBtn_pressed"]
[connection signal="pressed" from="Controls/Windows/ToolsWindow/CenterCtr/VertCtr/ZonesCtr/ResBtn" to="Map" method="_on_ResBtn_pressed"] [connection signal="pressed" from="Controls/Windows/ToolsWindow/CenterCtr/VertCtr/ZonesCtr/ResBtn" to="Map" method="_on_ResBtn_pressed"]
[connection signal="pressed" from="Controls/Menu/ButtonCtr/TaxBtn" to="Controls/Windows" method="_on_TaxBtn_pressed"] [connection signal="pressed" from="Controls/Status/StatCtr/ButtonCtr/TaxBtn" to="Controls/Windows" method="_on_TaxBtn_pressed"]
[connection signal="pressed" from="Controls/Menu/ButtonCtr/ToolsBtn" to="Controls/Windows" method="_on_ToolsBtn_pressed"] [connection signal="pressed" from="Controls/Status/StatCtr/ButtonCtr/ToolsBtn" to="Controls/Windows" method="_on_ToolsBtn_pressed"]
[connection signal="pressed" from="Controls/Menu/ButtonCtr/AdvsiorBtn" to="Controls/Windows" method="_on_AdvsiorBtn_pressed"] [connection signal="pressed" from="Controls/Status/StatCtr/ButtonCtr/AdvsiorBtn" to="Controls/Windows" method="_on_AdvsiorBtn_pressed"]
[connection signal="toggled" from="Controls/Status/SpeedCtr/TurtleBtn" to="." method="_on_TurtleBtn_toggled"] [connection signal="toggled" from="Controls/Status/StatCtr/ButtonCtr/TurtleBtn" to="." method="_on_TurtleBtn_toggled"]
[connection signal="toggled" from="Controls/Status/SpeedCtr/CheetaBtn" to="." method="_on_CheetaBtn_toggled"] [connection signal="toggled" from="Controls/Status/StatCtr/ButtonCtr/CheetaBtn" to="." method="_on_CheetaBtn_toggled"]

View file

@ -1,12 +1,16 @@
[gd_scene load_steps=2 format=2] [gd_scene load_steps=5 format=2]
[ext_resource path="res://sprites/symbols/fontawesome/coins.svg" type="Texture" id=1]
[ext_resource path="res://scripts/tax_window.gd" type="Script" id=2] [ext_resource path="res://scripts/tax_window.gd" type="Script" id=2]
[ext_resource path="res://sprites/symbols/fontawesome/arrow-pointing-down.svg" type="Texture" id=3]
[ext_resource path="res://sprites/symbols/fontawesome/arrow-up.svg" type="Texture" id=4]
[node name="TaxWindow" type="WindowDialog"] [node name="TaxWindow" type="WindowDialog"]
visible = true
anchor_left = 0.2809 anchor_left = 0.2809
anchor_top = 0.265 anchor_top = 0.265764
anchor_right = 0.631486 anchor_right = 0.631486
anchor_bottom = 0.446667 anchor_bottom = 0.447431
margin_left = -0.641174 margin_left = -0.641174
margin_right = -0.641174 margin_right = -0.641174
window_title = "RCI" window_title = "RCI"
@ -116,26 +120,54 @@ margin_bottom = 50.0
text = "1%" text = "1%"
[node name="IncomeCtr" type="HBoxContainer" parent="."] [node name="IncomeCtr" type="HBoxContainer" parent="."]
anchor_left = 0.00835655 anchor_left = 0.00707957
anchor_top = 0.642202 anchor_top = 0.650614
anchor_right = 0.97493 anchor_right = 0.973653
anchor_bottom = 0.834862 anchor_bottom = 0.843274
alignment = 1
__meta__ = { __meta__ = {
"_edit_use_anchors_": true "_edit_use_anchors_": false
}
[node name="CoinIcn" type="TextureRect" parent="IncomeCtr"]
margin_left = 115.0
margin_right = 129.0
margin_bottom = 20.0
texture = ExtResource( 1 )
stretch_mode = 6
[node name="UpArrowIcn" type="TextureRect" parent="IncomeCtr"]
modulate = Color( 0.054902, 1, 0, 1 )
margin_left = 133.0
margin_right = 142.0
margin_bottom = 20.0
texture = ExtResource( 4 )
stretch_mode = 6
__meta__ = {
"_edit_use_anchors_": false
} }
[node name="IcnomeLbl" type="Label" parent="IncomeCtr"] [node name="IcnomeLbl" type="Label" parent="IncomeCtr"]
margin_left = 146.0
margin_top = 3.0 margin_top = 3.0
margin_right = 90.0 margin_right = 180.0
margin_bottom = 17.0 margin_bottom = 17.0
text = "Income: $0/yr" text = "0/mo"
[node name="DownArrowIcn" type="TextureRect" parent="IncomeCtr"]
modulate = Color( 1, 0, 0, 1 )
margin_left = 184.0
margin_right = 193.0
margin_bottom = 20.0
texture = ExtResource( 3 )
stretch_mode = 6
[node name="ExpensivesLbl" type="Label" parent="IncomeCtr"] [node name="ExpensivesLbl" type="Label" parent="IncomeCtr"]
margin_left = 94.0 margin_left = 197.0
margin_top = 3.0 margin_top = 3.0
margin_right = 206.0 margin_right = 231.0
margin_bottom = 17.0 margin_bottom = 17.0
text = "Expensives: $0/yr" text = "0/mo"
[connection signal="value_changed" from="TaxSlidersCtr/ResCtr/ResSlider" to="." method="_on_ResSlider_value_changed"] [connection signal="value_changed" from="TaxSlidersCtr/ResCtr/ResSlider" to="." method="_on_ResSlider_value_changed"]
[connection signal="value_changed" from="TaxSlidersCtr/ComCtr/ComSlider" to="." method="_on_ComSlider_value_changed"] [connection signal="value_changed" from="TaxSlidersCtr/ComCtr/ComSlider" to="." method="_on_ComSlider_value_changed"]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

After

Width:  |  Height:  |  Size: 177 KiB

View file

@ -61,7 +61,15 @@ func _init_advisor(file, advisor):
func _launch_advisor_window(key): func _launch_advisor_window(key):
_index_dialogue() _index_dialogue()
description_label.text = dialogue_keys[key].text var message: String = dialogue_keys[key].text
if "[name]" in message:
message = message.replace("[name]", SimData.mayor_name)
if "[city]" in message:
message = message.replace("[city]", SimData.city_name)
description_label.text = message
window_title = dialogue_keys[key].name window_title = dialogue_keys[key].name
show() show()

View file

@ -4,6 +4,7 @@ signal has_power
signal budget signal budget
signal game_speed signal game_speed
# Policies and Advisors
signal policy_message(policy) signal policy_message(policy)
signal policy_analysis(advisor, policy) signal policy_analysis(advisor, policy)
signal advisor_message(advisor, message) signal advisor_message(advisor, message)

View file

@ -1,8 +1,8 @@
extends HBoxContainer extends HBoxContainer
onready var city_name = $CityNameLbl onready var city_name = $NameDate/CityNameLbl
onready var budget = $BudgetCtr/BudgetLbl onready var budget = $PopBudget/BudgetCtr/BudgetLbl
onready var calendar = $YearCtr/CalendarLbl onready var calendar = $NameDate/YearCtr/CalendarLbl
func _process(delta): func _process(delta):
city_name.text = SimData.city_name city_name.text = SimData.city_name

View file

@ -2,8 +2,8 @@ extends Node2D
onready var rotate_news = $RotateNews onready var rotate_news = $RotateNews
onready var day_cycle = $DayCycle onready var day_cycle = $DayCycle
onready var turtle_btn = $Controls/Status/SpeedCtr/TurtleBtn onready var turtle_btn = $Controls/Status/StatCtr/ButtonCtr/TurtleBtn
onready var cheeta_btn = $Controls/Status/SpeedCtr/CheetaBtn onready var cheeta_btn = $Controls/Status/StatCtr/ButtonCtr/CheetaBtn
func _ready(): func _ready():
SimEvents.connect("resume_news", self, "_resume_rotation") SimEvents.connect("resume_news", self, "_resume_rotation")
@ -45,3 +45,4 @@ func _on_CheetaBtn_toggled(button_pressed):
if button_pressed: if button_pressed:
day_cycle.wait_time = 2 day_cycle.wait_time = 2
turtle_btn.pressed = false turtle_btn.pressed = false

View file

@ -1,38 +1,39 @@
extends WindowDialog extends WindowDialog
var dialogue_file = "res://dialog/policies/policies.json" var dialogue_file = "res://dialog/policies/proposels.json"
var dialogue_keys = [] var dialogue_keys = []
var dialogue_name = "" var dialogue_name = ""
var dialogue_text = "" var dialogue_text = ""
var policy: int var policy_id
onready var ordinance_label = $OrdinanceLbl onready var ordinance_label = $OrdinanceLbl
onready var description_label = $DescPanel/DescriptionLbl onready var description_label = $DescPanel/DescriptionLbl
func _start_dialogue(ordinance): func _start_dialogue(policy):
match policy:
[SimData.Ordinances.ENERGY_CONSERVATION, 1]:
policy_id = 1
_launch_policy_window(1)
[SimData.Ordinances.CLEAN_AIR_ACT, 3]:
policy_id = 2
_launch_policy_window(2)
[SimData.Ordinances.TIRE_RECYCLE, 3]:
policy_id = 3
_launch_policy_window(3)
func _launch_policy_window(key):
_index_dialogue() _index_dialogue()
var message: String = dialogue_keys[key].text
match ordinance: if "[name]" in message:
1: message = message.replace("[name]", SimData.mayor_name)
policy = 1
2:
policy = 2
3:
policy = 3
var proposel: String = dialogue_keys[policy].text if "[city]" in message:
message = message.replace("[city]", SimData.city_name)
if "[name]" in proposel:
proposel = proposel.replace("[name]", SimData.mayor_name)
if "[city]" in proposel:
proposel = proposel.replace("[city]", SimData.city_name)
description_label.text = proposel
ordinance_label.text = dialogue_keys[policy].name
description_label.text = message
window_title = dialogue_keys[key].name
show() show()
func _index_dialogue(): func _index_dialogue():
@ -52,18 +53,18 @@ func _ready():
SimEvents.connect("policy_message", self, "_start_dialogue") SimEvents.connect("policy_message", self, "_start_dialogue")
func _on_IgnoreBtn_pressed(): func _on_IgnoreBtn_pressed():
policy = 0 policy_id = 0
description_label.text = "" description_label.text = ""
ordinance_label.text = "" ordinance_label.text = ""
hide() hide()
func _on_EnectBtn_pressed(): func _on_EnectBtn_pressed():
match policy: match policy_id:
1: SimEvents.emit_signal("energy_saving") 1: SimEvents.emit_signal("energy_saving")
2: SimEvents.emit_signal("clean_air_act") 2: SimEvents.emit_signal("clean_air_act")
func _on_AnalysisBtn_pressed(): func _on_AnalysisBtn_pressed():
match policy: match policy_id:
1: SimEvents.emit_signal("policy_analysis", SimData.Advisors.CITY_PLANNER, policy) 1: SimEvents.emit_signal("policy_analysis", SimData.Advisors.CITY_PLANNER, policy_id)
2: SimEvents.emit_signal("policy_analysis", SimData.Advisors.CITY_PLANNER, policy) 2: SimEvents.emit_signal("policy_analysis", SimData.Advisors.CITY_PLANNER, policy_id)
3: SimEvents.emit_signal("policy_analysis", SimData.Advisors.CITY_PLANNER, policy) 3: SimEvents.emit_signal("policy_analysis", SimData.Advisors.CITY_PLANNER, policy_id)

View file

@ -26,9 +26,8 @@ func _ready():
func _process(delta): func _process(delta):
var total_income = int(SimData.res_income + SimData.comm_income + SimData.ind_income) var total_income = int(SimData.res_income + SimData.comm_income + SimData.ind_income)
if SimData.prev_month < SimData.month and total_income > 1:
if total_income >= 1: annual_income.text = str(total_income) + "/mo"
annual_income.text = "Income: " + SimData.currency + str(total_income) + "/yr"
func _on_ResSlider_value_changed(value): func _on_ResSlider_value_changed(value):
SimData.res_tax = int(value) SimData.res_tax = int(value)

View file

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="9.9999981"
height="10"
viewBox="0 0 9.9999981 10"
xml:space="preserve"
sodipodi:docname="arrow-pointing-down.svg"
inkscape:version="1.0.2 (e86c8708, 2021-01-15)"><metadata
id="metadata872"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs870" /><sodipodi:namedview
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="987"
id="namedview868"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:pagecheckerboard="true"
inkscape:zoom="3.3016737"
inkscape:cx="16.69721"
inkscape:cy="15.681365"
inkscape:window-x="0"
inkscape:window-y="23"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1" />
<g
id="g835"
transform="matrix(0.0224811,0,0,0.02361816,0,-0.25290326)"
style="fill:#ffffff">
<path
d="m 434.252,185.721 -21.409,-21.413 c -7.419,-7.042 -16.084,-10.564 -25.975,-10.564 -10.095,0 -18.657,3.521 -25.7,10.564 L 277.23,248.247 V 47.255 c 0,-9.9 -3.621,-18.464 -10.855,-25.697 -7.234,-7.232 -15.797,-10.85 -25.693,-10.85 h -36.545 c -9.897,0 -18.464,3.621 -25.693,10.85 -7.236,7.233 -10.85,15.797 -10.85,25.697 V 248.247 L 83.655,164.308 c -7.042,-7.042 -15.606,-10.564 -25.697,-10.564 -9.896,0 -18.559,3.521 -25.979,10.564 L 10.851,185.721 C 3.615,192.948 0,201.615 0,211.7 c 0,10.282 3.619,18.848 10.848,25.698 l 185.864,186.146 c 7.045,7.046 15.609,10.567 25.697,10.567 9.897,0 18.558,-3.521 25.977,-10.567 L 434.251,237.398 c 7.043,-7.043 10.567,-15.608 10.567,-25.698 0.001,-9.895 -3.523,-18.555 -10.566,-25.979 z"
id="path833"
style="fill:#ffffff" />
</g>
<g
id="g837"
transform="translate(0,-10.708)">
</g>
<g
id="g839"
transform="translate(0,-10.708)">
</g>
<g
id="g841"
transform="translate(0,-10.708)">
</g>
<g
id="g843"
transform="translate(0,-10.708)">
</g>
<g
id="g845"
transform="translate(0,-10.708)">
</g>
<g
id="g847"
transform="translate(0,-10.708)">
</g>
<g
id="g849"
transform="translate(0,-10.708)">
</g>
<g
id="g851"
transform="translate(0,-10.708)">
</g>
<g
id="g853"
transform="translate(0,-10.708)">
</g>
<g
id="g855"
transform="translate(0,-10.708)">
</g>
<g
id="g857"
transform="translate(0,-10.708)">
</g>
<g
id="g859"
transform="translate(0,-10.708)">
</g>
<g
id="g861"
transform="translate(0,-10.708)">
</g>
<g
id="g863"
transform="translate(0,-10.708)">
</g>
<g
id="g865"
transform="translate(0,-10.708)">
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/arrow-pointing-down.svg-2e9bf66bb94d470af7a92af17efa38ff.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://sprites/symbols/fontawesome/arrow-pointing-down.svg"
dest_files=[ "res://.import/arrow-pointing-down.svg-2e9bf66bb94d470af7a92af17efa38ff.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View file

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="9.9999981"
height="10.000001"
viewBox="0 0 9.9999981 10.000001"
xml:space="preserve"
sodipodi:docname="arrow-up.svg"
inkscape:version="1.0.2 (e86c8708, 2021-01-15)"><metadata
id="metadata913"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs911" /><sodipodi:namedview
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="987"
id="namedview909"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:pagecheckerboard="true"
inkscape:zoom="1.8951529"
inkscape:cx="222.4095"
inkscape:cy="210.1305"
inkscape:window-x="0"
inkscape:window-y="23"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1" />
<g
id="g876"
style="fill:#ffffff"
transform="matrix(0.0224811,0,0,0.02379474,0,-0.29217561)">
<path
d="M 434.252,208.708 248.387,22.843 C 241.345,15.8 232.694,12.279 222.41,12.279 c -10.467,0 -19.036,3.521 -25.697,10.564 L 10.848,208.708 C 3.615,215.94 0,224.604 0,234.692 c 0,9.897 3.619,18.459 10.848,25.693 l 21.411,21.409 c 6.854,7.231 15.42,10.855 25.697,10.855 10.278,0 18.842,-3.624 25.697,-10.855 l 83.939,-83.651 v 200.998 c 0,9.89 3.567,17.936 10.706,24.126 7.139,6.184 15.752,9.273 25.837,9.273 h 36.545 c 10.089,0 18.698,-3.09 25.837,-9.273 7.139,-6.188 10.712,-14.236 10.712,-24.126 V 198.144 l 83.938,83.651 c 6.848,7.231 15.413,10.855 25.7,10.855 10.082,0 18.747,-3.624 25.975,-10.855 l 21.409,-21.409 c 7.043,-7.426 10.567,-15.988 10.567,-25.693 0.001,-9.898 -3.523,-18.559 -10.566,-25.985 z"
id="path874"
style="fill:#ffffff" />
</g>
<g
id="g878"
transform="translate(0,-12.279)">
</g>
<g
id="g880"
transform="translate(0,-12.279)">
</g>
<g
id="g882"
transform="translate(0,-12.279)">
</g>
<g
id="g884"
transform="translate(0,-12.279)">
</g>
<g
id="g886"
transform="translate(0,-12.279)">
</g>
<g
id="g888"
transform="translate(0,-12.279)">
</g>
<g
id="g890"
transform="translate(0,-12.279)">
</g>
<g
id="g892"
transform="translate(0,-12.279)">
</g>
<g
id="g894"
transform="translate(0,-12.279)">
</g>
<g
id="g896"
transform="translate(0,-12.279)">
</g>
<g
id="g898"
transform="translate(0,-12.279)">
</g>
<g
id="g900"
transform="translate(0,-12.279)">
</g>
<g
id="g902"
transform="translate(0,-12.279)">
</g>
<g
id="g904"
transform="translate(0,-12.279)">
</g>
<g
id="g906"
transform="translate(0,-12.279)">
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/arrow-up.svg-5447ff6f0f50b151c17fd310ad1c924b.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://sprites/symbols/fontawesome/arrow-up.svg"
dest_files=[ "res://.import/arrow-up.svg-5447ff6f0f50b151c17fd310ad1c924b.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0