citylimits/scripts/Zone.gd
Tony Bark 0b60335591 Implemented basic buying functions
- Renamed more scripts
- Switched license to Artistic 2.0
2021-05-20 00:58:17 -04:00

63 lines
1.3 KiB
GDScript

extends KinematicBody2D
signal grabbed
signal power
export var cost: int = 10000
export var income: int
export var expense: int
onready var zone = $Sprite
onready var quarters = $Quarters
onready var player = $AnimationPlayer
var can_grab = false
var is_powered = false
var grabbed_offset = Vector2()
func _ready():
SimEvents.connect("pay_expense", self, "_get_expense")
connect("grabbed", self, "_grab_zone")
connect("power", self, "_power_zone")
func _input(event):
if event is InputEventMouseButton and can_grab:
# Disable grabbing
can_grab = false
grabbed_offset = position - get_global_mouse_position()
# Substract from the player's budget
if SimData.budget >= cost:
SimData.budget -= cost
func _process(delta):
if can_grab:
position = get_global_mouse_position() + grabbed_offset
if not is_powered:
quarters.stop()
else:
quarters.start()
func _grab_zone():
can_grab = true
func _power_zone():
quarters.start()
player.play("Animante")
func _on_Quarters_timeout():
if SimData.prev_quarter == 4:
if SimData.budget >= expense:
SimData.budget -= expense
if SimData.budget >= income:
SimData.budget += income
SimData.year += 1
SimData.emit_signal("one_time_zone")
SimData.emit_signal("pay_expense")
SimData.prev_quarter = SimData.quarter
quarters.start()