mirror of
https://github.com/tonytins/citylimits
synced 2025-06-25 09:24:44 -04:00
Implemented basic buying functions
- Renamed more scripts - Switched license to Artistic 2.0
This commit is contained in:
parent
8435cab605
commit
0b60335591
17 changed files with 330 additions and 428 deletions
|
@ -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))
|
|
@ -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()
|
||||
|
|
|
@ -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
51
scripts/map_generator.gd
Normal 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")
|
|
@ -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")
|
Loading…
Add table
Add a link
Reference in a new issue