Implemented basic buying functions

- Renamed more scripts
- Switched license to Artistic 2.0
This commit is contained in:
Tony Bark 2021-05-20 00:58:17 -04:00
parent 8435cab605
commit 0b60335591
17 changed files with 330 additions and 428 deletions

View file

@ -1,33 +0,0 @@
extends Node2D
var noise: OpenSimplexNoise
var map_size = Vector2(80, 60)
var terrian_cap = 0.3
func _ready():
randomize()
noise = OpenSimplexNoise.new()
noise.seed = randi()
noise.octaves = 1.5
noise.period = 12
make_terrian_map()
make_water()
func make_terrian_map():
for x in map_size.x:
for y in map_size.y:
var a = noise.get_noise_2d(x, y)
if a < terrian_cap:
$terrian.set_cell(x, y, 0)
$terrian.update_bitmask_region(Vector2(0.0, 0.0), Vector2(map_size.x, map_size.y))
func make_water():
for x in map_size.x:
for y in map_size.y:
if $terrian.get_cell(x, y):
$water.set_cell(x, y, 0)
$water.update_bitmask_region(Vector2(0.0, 0.0), Vector2(map_size.x, map_size.y))

View file

@ -1,5 +1,8 @@
extends KinematicBody2D
signal grabbed
signal power
export var cost: int = 10000
export var income: int
export var expense: int
@ -9,38 +12,52 @@ 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")
# Once placed in-world, it'll substract from your budget
if SimData.budget >= cost:
SimData.budget -= cost
connect("grabbed", self, "_grab_zone")
connect("power", self, "_power_zone")
func _input(event):
if event is InputEventMouseButton:
can_grab = event.pressed
if event is InputEventMouseButton and can_grab:
# Disable grabbing
can_grab = false
grabbed_offset = position - get_global_mouse_position()
func _process(delta):
player.play("Animante")
if SimData.budget >= expense:
SimData.budget -= expense
if SimData.budget >= income:
SimData.budget += income
if Input.is_mouse_button_pressed(BUTTON_LEFT) and can_grab:
# 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
SimData.prev_quarter = SimData.quarter
quarters.start()

View file

@ -7,7 +7,7 @@ var quarter: int = 1
var population: int = 0
var news_ticker: String
var budget: int
var budget: int = 10000000
var prev_budget: int
var res_tax: int

51
scripts/map_generator.gd Normal file
View file

@ -0,0 +1,51 @@
extends Node2D
var noise: OpenSimplexNoise
var map_size = Vector2(80, 60)
var terrian_cap = 0.3
onready var terrian = $Terrian
onready var water = $Water
func _ready():
randomize()
noise = OpenSimplexNoise.new()
noise.seed = randi()
noise.octaves = 1.5
noise.period = 12
make_terrian_map()
make_water()
func make_terrian_map():
for x in map_size.x:
for y in map_size.y:
var a = noise.get_noise_2d(x, y)
if a < terrian_cap:
terrian.set_cell(x, y, 0)
terrian.update_bitmask_region(Vector2(0.0, 0.0), Vector2(map_size.x, map_size.y))
func make_water():
for x in map_size.x:
for y in map_size.y:
if terrian.get_cell(x, y):
water.set_cell(x, y, 0)
water.update_bitmask_region(Vector2(0.0, 0.0), Vector2(map_size.x, map_size.y))
func fake_click(flags=0):
var ev = InputEvent
ev.type = InputEvent.MOUSE_BUTTON
ev.button_index=BUTTON_LEFT
ev.pressed = true
ev.global_pos = get_global_mouse_position()
ev.meta = flags
get_tree().input_event(ev)
func _on_PoliceBtn_pressed():
var police = preload("res://scenes/Zone.tscn")
var instance = police.instance()
add_child(instance)
instance.emit_signal("grabbed")

View file

@ -1,8 +1,11 @@
extends Panel
onready var city_name = $Container/CityNameEdit.text
onready var budget = $Container/BudgetMenu
func _on_CreateBtn_pressed():
SimData.city_name = city_name
get_tree().change_scene("res://scenes/Game.tscn")