add bonus system

This commit is contained in:
dariasteam 2018-02-19 20:15:01 +00:00
parent 01d689ae0a
commit 4fa0d2e086
5 changed files with 100 additions and 7 deletions

View file

@ -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"]

View 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"]

View file

@ -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

View file

@ -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

View file

@ -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