mirror of
https://github.com/Steffo99/hella-farm.git
synced 2024-11-21 15:44:23 +00:00
Spawn a sheep with right click
This commit is contained in:
parent
d3480156b0
commit
fa394f8cd2
7 changed files with 68 additions and 12 deletions
|
@ -16,7 +16,7 @@ var value: int = 0
|
||||||
func change(amount: int):
|
func change(amount: int):
|
||||||
var old = value
|
var old = value
|
||||||
value = amount
|
value = amount
|
||||||
changed.emit(old, value)
|
changed.emit(value, old)
|
||||||
|
|
||||||
func increase(amount: int = 1):
|
func increase(amount: int = 1):
|
||||||
if amount < 0:
|
if amount < 0:
|
||||||
|
|
|
@ -8,8 +8,12 @@ signal dragged(node: Draggable)
|
||||||
signal dropped(node: Draggable)
|
signal dropped(node: Draggable)
|
||||||
|
|
||||||
|
|
||||||
|
@export var sheep_spawn_cost: int = 5
|
||||||
|
|
||||||
|
|
||||||
@onready var game: MainGame = MainGame.get_via_group(self)
|
@onready var game: MainGame = MainGame.get_via_group(self)
|
||||||
@onready var gold_display: GoldDisplay = %"GoldDisplay"
|
@onready var gold_display: GoldDisplay = %"GoldDisplay"
|
||||||
|
@onready var sheep_spawner: Spawner = %"SheepSpawner"
|
||||||
|
|
||||||
var dragging: Draggable = null
|
var dragging: Draggable = null
|
||||||
|
|
||||||
|
@ -58,6 +62,13 @@ func _input(event: InputEvent) -> void:
|
||||||
drag()
|
drag()
|
||||||
else:
|
else:
|
||||||
drop()
|
drop()
|
||||||
|
elif event.button_index == MOUSE_BUTTON_RIGHT:
|
||||||
|
if event.pressed:
|
||||||
|
var counter: Counter = game.inventory.get_counter(&"Gold")
|
||||||
|
if counter.value >= sheep_spawn_cost:
|
||||||
|
counter.decrease(sheep_spawn_cost)
|
||||||
|
sheep_spawner.spawn()
|
||||||
|
|
||||||
|
|
||||||
func _physics_process(_delta: float) -> void:
|
func _physics_process(_delta: float) -> void:
|
||||||
position += (game.camera.get_global_mouse_position() - global_position)
|
position += (game.camera.get_global_mouse_position() - global_position)
|
||||||
|
|
|
@ -1,10 +1,16 @@
|
||||||
[gd_scene load_steps=4 format=3 uid="uid://col1q3elvkfwk"]
|
[gd_scene load_steps=8 format=3 uid="uid://col1q3elvkfwk"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scenes/game/cursor.gd" id="1_1og6v"]
|
[ext_resource type="Script" path="res://scenes/game/cursor.gd" id="1_1og6v"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cu750c7yd57qa" path="res://scenes/game/gold_display.tscn" id="2_5c4iq"]
|
[ext_resource type="PackedScene" uid="uid://cu750c7yd57qa" path="res://scenes/game/gold_display.tscn" id="2_5c4iq"]
|
||||||
|
[ext_resource type="Script" path="res://behaviours/spawner.gd" id="3_tutfd"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bc2bm8lbol18w" path="res://entities/sheep.tscn" id="4_7isfg"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://8jkesanu4hrn" path="res://behaviours/tracker.tscn" id="5_ewy4o"]
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_j2mj5"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_j2mj5"]
|
||||||
radius = 4.0
|
radius = 48.0
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_dc2ul"]
|
||||||
|
radius = 8.0
|
||||||
|
|
||||||
[node name="Cursor" type="Area2D" groups=["cursor"]]
|
[node name="Cursor" type="Area2D" groups=["cursor"]]
|
||||||
z_index = 100
|
z_index = 100
|
||||||
|
@ -14,7 +20,18 @@ script = ExtResource("1_1og6v")
|
||||||
|
|
||||||
[node name="Shape" type="CollisionShape2D" parent="."]
|
[node name="Shape" type="CollisionShape2D" parent="."]
|
||||||
shape = SubResource("CircleShape2D_j2mj5")
|
shape = SubResource("CircleShape2D_j2mj5")
|
||||||
debug_color = Color(1, 1, 1, 1)
|
debug_color = Color(0, 0.411765, 0, 0)
|
||||||
|
|
||||||
[node name="GoldDisplay" parent="." instance=ExtResource("2_5c4iq")]
|
[node name="GoldDisplay" parent="." instance=ExtResource("2_5c4iq")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|
||||||
|
[node name="SheepSpawner" type="Node2D" parent="." node_paths=PackedStringArray("blocking_tracker")]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
script = ExtResource("3_tutfd")
|
||||||
|
scene = ExtResource("4_7isfg")
|
||||||
|
blocking_tracker = NodePath("Tracker")
|
||||||
|
|
||||||
|
[node name="Tracker" parent="SheepSpawner" instance=ExtResource("5_ewy4o")]
|
||||||
|
|
||||||
|
[node name="Shape" type="CollisionShape2D" parent="SheepSpawner/Tracker"]
|
||||||
|
shape = SubResource("CircleShape2D_dc2ul")
|
||||||
|
|
|
@ -9,8 +9,18 @@ class_name GoldDisplay
|
||||||
func set_text(value: int) -> void:
|
func set_text(value: int) -> void:
|
||||||
label.text = "%d €" % value
|
label.text = "%d €" % value
|
||||||
|
|
||||||
|
func increase(value: int):
|
||||||
func display(value: int):
|
|
||||||
set_text(value)
|
set_text(value)
|
||||||
animator.stop()
|
animator.stop()
|
||||||
animator.play(&"collect")
|
animator.play(&"increase")
|
||||||
|
|
||||||
|
func decrease(value: int):
|
||||||
|
set_text(value)
|
||||||
|
animator.stop()
|
||||||
|
animator.play(&"decrease")
|
||||||
|
|
||||||
|
func change(new: int, old: int):
|
||||||
|
if new > old:
|
||||||
|
increase(new)
|
||||||
|
elif old > new:
|
||||||
|
decrease(new)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=6 format=3 uid="uid://cu750c7yd57qa"]
|
[gd_scene load_steps=7 format=3 uid="uid://cu750c7yd57qa"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scenes/game/gold_display.gd" id="1_poqth"]
|
[ext_resource type="Script" path="res://scenes/game/gold_display.gd" id="1_poqth"]
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ tracks/0/keys = {
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_8n0bl"]
|
[sub_resource type="Animation" id="Animation_8n0bl"]
|
||||||
resource_name = "collect"
|
resource_name = "increase"
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
|
@ -32,10 +32,26 @@ tracks/0/keys = {
|
||||||
"values": [Vector2(1.4, 1.4), Vector2(1, 1)]
|
"values": [Vector2(1.4, 1.4), Vector2(1, 1)]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_rd1cq"]
|
||||||
|
resource_name = "decrease"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath(".:scale")
|
||||||
|
tracks/0/interp = 2
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 1),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0.6, 0.6), Vector2(1, 1)]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_bj0k7"]
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_bj0k7"]
|
||||||
_data = {
|
_data = {
|
||||||
"RESET": SubResource("Animation_3gb4u"),
|
"RESET": SubResource("Animation_3gb4u"),
|
||||||
"collect": SubResource("Animation_8n0bl")
|
"decrease": SubResource("Animation_rd1cq"),
|
||||||
|
"increase": SubResource("Animation_8n0bl")
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="LabelSettings" id="LabelSettings_1jb4h"]
|
[sub_resource type="LabelSettings" id="LabelSettings_1jb4h"]
|
||||||
|
|
|
@ -18,5 +18,5 @@ static func get_via_group(node: Node) -> MainGame:
|
||||||
func _ready():
|
func _ready():
|
||||||
# Set up the gold display
|
# Set up the gold display
|
||||||
var gold_counter = inventory.get_counter(&"Gold")
|
var gold_counter = inventory.get_counter(&"Gold")
|
||||||
gold_counter.changed.connect(cursor.gold_display.display.unbind(1))
|
gold_counter.changed.connect(cursor.gold_display.change)
|
||||||
cursor.gold_display.set_text(gold_counter.value)
|
cursor.gold_display.set_text(gold_counter.value)
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
[gd_scene load_steps=18 format=3 uid="uid://cxj5aud02f40j"]
|
[gd_scene load_steps=19 format=3 uid="uid://cxj5aud02f40j"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scenes/game/main_game.gd" id="1_wiglu"]
|
[ext_resource type="Script" path="res://scenes/game/main_game.gd" id="1_wiglu"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dm068vaseh45n" path="res://scenes/game/game_camera.tscn" id="2_db5xs"]
|
[ext_resource type="PackedScene" uid="uid://dm068vaseh45n" path="res://scenes/game/game_camera.tscn" id="2_db5xs"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cu6mvnfa01nb6" path="res://scenes/game/inventory.tscn" id="2_jhbbf"]
|
[ext_resource type="PackedScene" uid="uid://cu6mvnfa01nb6" path="res://scenes/game/inventory.tscn" id="2_jhbbf"]
|
||||||
[ext_resource type="Texture2D" uid="uid://d13j4br4hxek6" path="res://scenes/game/tileset_grass.png" id="2_o7bg5"]
|
[ext_resource type="Texture2D" uid="uid://d13j4br4hxek6" path="res://scenes/game/tileset_grass.png" id="2_o7bg5"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://brvbtvt4em32" path="res://behaviours/counter.tscn" id="3_we8s5"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ki0xyx6gvkty" path="res://scenes/game/tileset_flowers.png" id="4_dlm0d"]
|
[ext_resource type="Texture2D" uid="uid://ki0xyx6gvkty" path="res://scenes/game/tileset_flowers.png" id="4_dlm0d"]
|
||||||
[ext_resource type="PackedScene" uid="uid://col1q3elvkfwk" path="res://scenes/game/cursor.tscn" id="5_g504x"]
|
[ext_resource type="PackedScene" uid="uid://col1q3elvkfwk" path="res://scenes/game/cursor.tscn" id="5_g504x"]
|
||||||
[ext_resource type="PackedScene" uid="uid://b3gydtrenbw3n" path="res://entities/skull.tscn" id="6_5k7gy"]
|
[ext_resource type="PackedScene" uid="uid://b3gydtrenbw3n" path="res://entities/skull.tscn" id="6_5k7gy"]
|
||||||
|
@ -840,6 +841,7 @@ script = ExtResource("1_wiglu")
|
||||||
|
|
||||||
[node name="Inventory" parent="." instance=ExtResource("2_jhbbf")]
|
[node name="Inventory" parent="." instance=ExtResource("2_jhbbf")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
counter_scene = ExtResource("3_we8s5")
|
||||||
|
|
||||||
[node name="FloorTileMap" type="TileMap" parent="."]
|
[node name="FloorTileMap" type="TileMap" parent="."]
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
|
|
Loading…
Reference in a new issue