mirror of
https://github.com/Dariasteam/Cows-Revenge.git
synced 2026-01-23 10:25:29 +00:00
add bonus system
This commit is contained in:
parent
01d689ae0a
commit
4fa0d2e086
5 changed files with 100 additions and 7 deletions
|
|
@ -80,7 +80,7 @@ tracks/0/keys = {
|
|||
[sub_resource type="RectangleShape2D" id=8]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 28.4934, 48.5983 )
|
||||
extents = Vector2( 4.3399, 110.989 )
|
||||
|
||||
[node name="UFO" type="Node2D"]
|
||||
|
||||
|
|
@ -91,6 +91,7 @@ script/script = SubResource( 9 )
|
|||
editor/display_folded = true
|
||||
visibility/behind_parent = true
|
||||
transform/pos = Vector2( 0, 131 )
|
||||
z/z = 2
|
||||
|
||||
[node name="ray_outter" type="Sprite" parent="Ray"]
|
||||
|
||||
|
|
@ -432,6 +433,7 @@ trigger = false
|
|||
|
||||
[node name="player_spawner" parent="." instance=ExtResource( 5 )]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( -1.5159, 199.14 )
|
||||
|
||||
[node name="Sprite_cow" type="Sprite" parent="player_spawner"]
|
||||
|
|
@ -458,7 +460,7 @@ autoplay = ""
|
|||
|
||||
[node name="Area2D" type="Area2D" parent="player_spawner"]
|
||||
|
||||
transform/pos = Vector2( 1.00537, -0.359009 )
|
||||
transform/pos = Vector2( 1.00537, -57.1355 )
|
||||
input/pickable = true
|
||||
shapes/0/shape = SubResource( 8 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, -0.263519, 0 )
|
||||
|
|
@ -477,7 +479,7 @@ _update_shape_index = 0
|
|||
|
||||
[node name="Instancer" type="Node2D" parent="player_spawner"]
|
||||
|
||||
transform/scale = Vector2( 0.6, 0.6 )
|
||||
transform/scale = Vector2( 0.5882, 0.5882 )
|
||||
|
||||
[connection signal="body_enter" from="player_spawner/Area2D" to="player_spawner" method="_on_Area2D_body_enter"]
|
||||
|
||||
|
|
|
|||
72
Scenes/Events/cowbell_bonus.tscn
Normal file
72
Scenes/Events/cowbell_bonus.tscn
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
[gd_scene load_steps=4 format=1]
|
||||
|
||||
[ext_resource path="res://Fonts/Cave-Story.fnt" type="BitmapFont" id=1]
|
||||
|
||||
[sub_resource type="GDScript" id=1]
|
||||
|
||||
script/source = "extends RichTextLabel
|
||||
|
||||
func _ready(number):
|
||||
set_text(str(\"+\", number))
|
||||
|
||||
func _on_AnimationPlayer_finished():
|
||||
queue_free()
|
||||
"
|
||||
|
||||
[sub_resource type="Animation" id=2]
|
||||
|
||||
length = 1.0
|
||||
loop = false
|
||||
step = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:rect/pos")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0, 0.4, 0.6, 0.7, 0.8, 0.9, 0.9, 1 ),
|
||||
"transitions": FloatArray( 1, 1, 1, 1, 1, 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Vector2( 0, 94 ), Vector2( 0, 50 ), Vector2( 0, 37 ), Vector2( 0, 32.6667 ), Vector2( 0, 28.3333 ), Vector2( 630, 24 ), Vector2( 0, 24 ), Vector2( 0, 22 ) ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath(".:visibility/opacity")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/imported = false
|
||||
tracks/1/keys = {
|
||||
"times": FloatArray( 0, 1 ),
|
||||
"transitions": FloatArray( 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ 1.0, 0.0 ]
|
||||
}
|
||||
|
||||
[node name="Bonus" type="RichTextLabel"]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = 0.0
|
||||
margin/top = 94.0
|
||||
margin/right = 202.0
|
||||
margin/bottom = 228.0
|
||||
custom_fonts/normal_font = ExtResource( 1 )
|
||||
bbcode/enabled = true
|
||||
bbcode/bbcode = "+15"
|
||||
visible_characters = -1
|
||||
percent_visible = 1.0
|
||||
script/script = SubResource( 1 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
|
||||
playback/process_mode = 1
|
||||
playback/default_blend_time = 0.0
|
||||
root/root = NodePath("..")
|
||||
anims/bonus_up = SubResource( 2 )
|
||||
playback/active = true
|
||||
playback/speed = 1.0
|
||||
blend_times = [ ]
|
||||
autoplay = "bonus_up"
|
||||
|
||||
[connection signal="finished" from="AnimationPlayer" to="." method="_on_AnimationPlayer_finished"]
|
||||
|
||||
|
||||
|
|
@ -62,7 +62,6 @@ func add_cowbells(var number):
|
|||
cowbells_collected += number
|
||||
hud_cowbell.set_counter (cowbells_collected, cowbell_collector.play_sound())
|
||||
|
||||
|
||||
func is_falling ():
|
||||
return velocity.y > 0
|
||||
|
||||
|
|
|
|||
|
|
@ -278,6 +278,7 @@ sprite3 = ExtResource( 11 )
|
|||
|
||||
transform/pos = Vector2( 3, 21 )
|
||||
script/script = ExtResource( 12 )
|
||||
bonus_threshold = 25
|
||||
|
||||
[node name="Counter" type="RichTextLabel" parent="Control/Cowbells"]
|
||||
|
||||
|
|
@ -295,6 +296,10 @@ bbcode/bbcode = "0"
|
|||
visible_characters = -1
|
||||
percent_visible = 1.0
|
||||
|
||||
[node name="bonus_instancer" type="Node2D" parent="Control/Cowbells"]
|
||||
|
||||
transform/pos = Vector2( 642, 43 )
|
||||
|
||||
[node name="next_cowbell_timer" type="Timer" parent="Control/Cowbells"]
|
||||
|
||||
process_mode = 1
|
||||
|
|
|
|||
|
|
@ -4,12 +4,19 @@ extends Node2D
|
|||
# var a = 2
|
||||
# var b = "textvar"
|
||||
|
||||
const BONUS = preload("res://Scenes/Events/cowbell_bonus.tscn")
|
||||
|
||||
onready var label = get_node("Counter")
|
||||
onready var animation = get_node("Sprite/Animation")
|
||||
onready var next_cowbell_timer = get_node("next_cowbell_timer")
|
||||
onready var cold_down_timer = get_node("cold_down_timer")
|
||||
onready var sprite = get_node("Sprite")
|
||||
onready var base_modulation = Color(1,1,1)
|
||||
onready var instancer = get_node("bonus_instancer")
|
||||
|
||||
export(int) var bonus_threshold = 25
|
||||
|
||||
var ac = 0
|
||||
|
||||
var frame_number
|
||||
|
||||
|
|
@ -17,14 +24,16 @@ func _ready():
|
|||
animation.play("cowbell_animations")
|
||||
var anim = animation.get_animation("cowbell_animations")
|
||||
next_cowbell_timer.set_wait_time(anim.get_length() / animation.get_speed() )
|
||||
animation.set_active(false)
|
||||
animation.set_active(false)
|
||||
|
||||
func set_counter (var quantity, var acumulated):
|
||||
sprite.set_modulate(Color (1,1 - acumulated * 2,1 - acumulated * 2))
|
||||
label.set_bbcode(" " + String(quantity))
|
||||
animation.set_active(true)
|
||||
ac += 1
|
||||
next_cowbell_timer.start()
|
||||
cold_down_timer.start()
|
||||
|
||||
|
||||
func _on_next_cowbell_timer_timeout():
|
||||
sprite.set_frame(0)
|
||||
|
|
@ -34,6 +43,12 @@ func _on_cold_down_timer_timeout():
|
|||
var current_modulation = sprite.get_modulate()
|
||||
if (current_modulation.g >= base_modulation.g && current_modulation.b >= base_modulation.b):
|
||||
sprite.set_modulate(base_modulation)
|
||||
cold_down_timer.stop()
|
||||
else:
|
||||
cold_down_timer.stop()
|
||||
else:
|
||||
sprite.set_modulate(Color (1,current_modulation.g + 0.02 ,current_modulation.b + 0.02))
|
||||
if (ac >= bonus_threshold):
|
||||
instancer.add_child(BONUS.instance(1))
|
||||
get_tree().get_nodes_in_group("player")[0].add_cowbells(15)
|
||||
ac = 0
|
||||
if (ac > 0):
|
||||
ac -= 0.1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue