From d13622dd1b2dec5b917c618bb1887b779752d987 Mon Sep 17 00:00:00 2001 From: Anthony Foxclaw <35226681+tonytins@users.noreply.github.com> Date: Mon, 13 Apr 2020 01:49:07 -0400 Subject: [PATCH] One time income and pay expense signals Test income and expense with varies variables. --- project/assets/office.tscn | 17 +++++++---------- project/src/autoload/gamedata.gd | 2 ++ project/src/room.gd | 30 +++++++++++++++++++++--------- project/src/world.gd | 2 ++ project/src/world.tscn | 8 ++++++++ 5 files changed, 40 insertions(+), 19 deletions(-) diff --git a/project/assets/office.tscn b/project/assets/office.tscn index ac69547..317c4f6 100644 --- a/project/assets/office.tscn +++ b/project/assets/office.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=16 format=2] +[gd_scene load_steps=18 format=2] [ext_resource path="res://src/room.gd" type="Script" id=1] [ext_resource path="res://assets/Office/office_t0_1_3.png" type="Texture" id=2] @@ -14,15 +14,17 @@ [ext_resource path="res://assets/Office/office_t1_2_2.png" type="Texture" id=12] [ext_resource path="res://assets/Office/office_t1_2_0.png" type="Texture" id=13] [ext_resource path="res://assets/Office/office_t1_2_5.png" type="Texture" id=14] +[ext_resource path="res://assets/Office/office_t0_0_1.png" type="Texture" id=15] +[ext_resource path="res://assets/Office/office_t1_0_1.png" type="Texture" id=16] [sub_resource type="SpriteFrames" id=1] animations = [ { -"frames": [ ExtResource( 13 ), ExtResource( 10 ), ExtResource( 12 ), ExtResource( 3 ), ExtResource( 11 ), ExtResource( 14 ) ], +"frames": [ ExtResource( 16 ), ExtResource( 13 ), ExtResource( 10 ), ExtResource( 12 ), ExtResource( 3 ), ExtResource( 11 ), ExtResource( 14 ) ], "loop": true, "name": "v2", "speed": 2.0 }, { -"frames": [ ExtResource( 9 ), ExtResource( 8 ), ExtResource( 7 ), ExtResource( 2 ), ExtResource( 5 ), ExtResource( 4 ), ExtResource( 6 ) ], +"frames": [ ExtResource( 15 ), ExtResource( 9 ), ExtResource( 8 ), ExtResource( 7 ), ExtResource( 2 ), ExtResource( 5 ), ExtResource( 4 ), ExtResource( 6 ) ], "loop": true, "name": "v1", "speed": 2.0 @@ -30,14 +32,9 @@ animations = [ { [node name="Office" type="Node2D"] script = ExtResource( 1 ) -room_cost = 1000 -room_income = 500 -room_expense = 350 -room_capacity = 1 -is_rentable = true -[node name="AnimatedSprite" type="AnimatedSprite" parent="."] +[node name="RoomAnime" type="AnimatedSprite" parent="."] frames = SubResource( 1 ) animation = "v1" -frame = 5 +frame = 2 playing = true diff --git a/project/src/autoload/gamedata.gd b/project/src/autoload/gamedata.gd index 30a9940..f8aefca 100644 --- a/project/src/autoload/gamedata.gd +++ b/project/src/autoload/gamedata.gd @@ -11,3 +11,5 @@ var news: String enum GameSpeed { SLOW, MEDIUM, FAST } signal quarter_income +signal one_time_income +signal pay_expense diff --git a/project/src/room.gd b/project/src/room.gd index 403e076..a62c095 100644 --- a/project/src/room.gd +++ b/project/src/room.gd @@ -9,16 +9,20 @@ export var room_income: int export var room_expense: int export var room_capacity: int export var is_rentable: bool + export(IncomeFrequency) var income_frequency = IncomeFrequency.QUARTERLY export(ChooseSprite) var choose_sprite = ChooseSprite.VERSION_1 -var is_vacant: bool -var num_of_tenants: int -var is_full: bool +var is_paid: bool = false +var is_vacant: bool = true +var is_full: bool = false +var num_of_tenants: int = 0 func _ready(): GameData.connect("quarter_income", self, "_get_quarter_income") + GameData.connect("one_time_income", self, "_get_one_time_income") + GameData.connect("pay_expense", self, "_get_expense") # Once placed in-world, it'll substract from your budget if GameData.budget >= room_cost: @@ -26,17 +30,25 @@ func _ready(): func _process(delta): - match choose_sprite: - ChooseSprite.VERSION_1: - $AnimatedSprite.play("v1") - ChooseSprite.VERSION_2: - $AnimatedSprite.play("v2") - # If the office is no longer vacant, start rent timer if is_rentable == true: if num_of_tenants >= room_capacity: is_vacant = false num_of_tenants += 1 + match choose_sprite: + ChooseSprite.VERSION_1: + $RoomAnime.play("v1") + ChooseSprite.VERSION_2: + $RoomAnime.play("v2") + +func _get_expense(): + GameData.budget -= room_expense + +func _get_one_time_income(): + if is_paid == false: + GameData.budget += room_income + is_paid = true + func _get_quarter_income(): GameData.budget += room_income diff --git a/project/src/world.gd b/project/src/world.gd index 4a0c45f..4a8083e 100644 --- a/project/src/world.gd +++ b/project/src/world.gd @@ -5,6 +5,8 @@ func _on_Quarters_timeout(): if GameData.prev_quarter == 4: GameData.quarter = 1 GameData.year += 1 + GameData.emit_signal("one_time_income") + GameData.emit_signal("pay_expense") else: GameData.emit_signal("quarter_income") GameData.quarter += 1 diff --git a/project/src/world.tscn b/project/src/world.tscn index 3fa8f38..674a348 100644 --- a/project/src/world.tscn +++ b/project/src/world.tscn @@ -13,9 +13,17 @@ autostart = true [node name="Office" parent="." instance=ExtResource( 3 )] position = Vector2( 481.153, 260.554 ) +room_income = 700 +room_expense = 200 +room_capacity = 1 +is_rentable = true [node name="Office2" parent="." instance=ExtResource( 3 )] position = Vector2( 271.221, 296.175 ) +room_income = 600 +room_expense = 300 +room_capacity = 1 +is_rentable = true choose_sprite = 1 [node name="GUI" parent="." instance=ExtResource( 2 )]