ADD: strikes.
parent
93003abb2a
commit
52436feb3d
|
@ -5,7 +5,7 @@ extends Area2D
|
||||||
func _ready():
|
func _ready():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func _process(delta):
|
func _process(_delta):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func _on_body_entered(body):
|
func _on_body_entered(body):
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -7,7 +7,7 @@ func _ready():
|
||||||
|
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
func _process(delta):
|
func _process(_delta):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ radius = 34.0147
|
||||||
|
|
||||||
[node name="Molotov" type="CharacterBody2D" groups=["bombs"]]
|
[node name="Molotov" type="CharacterBody2D" groups=["bombs"]]
|
||||||
collision_layer = 2
|
collision_layer = 2
|
||||||
collision_mask = 2
|
collision_mask = 0
|
||||||
script = ExtResource("1_uepii")
|
script = ExtResource("1_uepii")
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
extends Node2D
|
||||||
|
|
||||||
|
|
||||||
|
class Line:
|
||||||
|
var m_time: float = 0.0
|
||||||
|
var m_source: Vector2 = Vector2(0.0, 0.0)
|
||||||
|
var m_position: Vector2 = Vector2(0.0, 0.0)
|
||||||
|
var m_color : Color = Color.RED
|
||||||
|
var m_timer : float = 0.0
|
||||||
|
|
||||||
|
func _init(t, src, pos, col):
|
||||||
|
m_time = t
|
||||||
|
m_source = src
|
||||||
|
m_position = pos
|
||||||
|
m_color = col
|
||||||
|
|
||||||
|
var m_lines = []
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
pass
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
for line in m_lines:
|
||||||
|
line.m_timer += delta
|
||||||
|
var t = min(1.0, line.m_timer / line.m_time)
|
||||||
|
line.m_color = Color(1, 0, 0, 1.0 - t)
|
||||||
|
|
||||||
|
m_lines = m_lines.filter(func (x): return x.m_timer < x.m_time)
|
||||||
|
queue_redraw()
|
||||||
|
|
||||||
|
func add_line(pos: Vector2, duration: float):
|
||||||
|
var src = Vector2(randf_range(0, 800), 0)
|
||||||
|
m_lines.push_back(Line.new(duration, src, pos, Color.RED))
|
||||||
|
|
||||||
|
func _draw():
|
||||||
|
for line in m_lines:
|
||||||
|
draw_line(line.m_source, line.m_position, line.m_color, 3)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,10 @@ var process_state = null
|
||||||
var m_death_timer = 0.0
|
var m_death_timer = 0.0
|
||||||
var m_death_time = 2.0
|
var m_death_time = 2.0
|
||||||
|
|
||||||
|
var m_strike_time = 1.0
|
||||||
|
var m_strike_timer = 0.0
|
||||||
|
var m_strikes = []
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
for bear in get_tree().get_nodes_in_group('bears'):
|
for bear in get_tree().get_nodes_in_group('bears'):
|
||||||
bear.m_target = $Player
|
bear.m_target = $Player
|
||||||
|
@ -16,12 +20,27 @@ func _ready():
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
if self.process_state:
|
if self.process_state:
|
||||||
self.process_state.call(delta)
|
self.process_state.call(delta)
|
||||||
|
|
||||||
func process(delta):
|
func process(delta):
|
||||||
for actor in get_tree().get_nodes_in_group('actors'):
|
for actor in get_tree().get_nodes_in_group('actors'):
|
||||||
if is_outside(actor) and actor.is_normal():
|
if is_outside(actor) and actor.is_normal():
|
||||||
actor.to_falling()
|
actor.to_falling()
|
||||||
|
|
||||||
|
if m_strike_timer >= m_strike_time:
|
||||||
|
var all = $TileMap.get_used_cells(0)
|
||||||
|
all.shuffle()
|
||||||
|
var ground = null
|
||||||
|
for t in all:
|
||||||
|
var data = $TileMap.get_cell_tile_data(0, t)
|
||||||
|
if data.get_custom_data('type') == 'ground':
|
||||||
|
ground = t
|
||||||
|
break
|
||||||
|
self.add_broken_ground(ground, 1, 0.8)
|
||||||
|
$Strikes.add_line(to_global($TileMap.map_to_local(ground)), 0.15)
|
||||||
|
m_strike_timer = 0.0
|
||||||
|
m_strike_time = randf() * 5.0
|
||||||
|
|
||||||
|
m_strike_timer += delta
|
||||||
if m_broken_timer >= m_broken_time:
|
if m_broken_timer >= m_broken_time:
|
||||||
var k = 0
|
var k = 0
|
||||||
var N = 2
|
var N = 2
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[gd_scene load_steps=4 format=3 uid="uid://ccjenj1vqgosm"]
|
[gd_scene load_steps=5 format=3 uid="uid://ccjenj1vqgosm"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Sandbox/sandbox.gd" id="1_e3dom"]
|
[ext_resource type="Script" path="res://Sandbox/sandbox.gd" id="1_e3dom"]
|
||||||
[ext_resource type="TileSet" uid="uid://c7xunhoxuo3ha" path="res://Sandbox/tile_set.tres" id="1_veo4i"]
|
[ext_resource type="TileSet" uid="uid://c7xunhoxuo3ha" path="res://Sandbox/tile_set.tres" id="1_veo4i"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dhjnilcj5mvou" path="res://Player/player.tscn" id="2_yd1wa"]
|
[ext_resource type="PackedScene" uid="uid://dhjnilcj5mvou" path="res://Player/player.tscn" id="2_yd1wa"]
|
||||||
|
[ext_resource type="Script" path="res://Sandbox/Strikes.gd" id="4_fpagp"]
|
||||||
|
|
||||||
[node name="Sandbox" type="Node2D"]
|
[node name="Sandbox" type="Node2D"]
|
||||||
script = ExtResource("1_e3dom")
|
script = ExtResource("1_e3dom")
|
||||||
|
@ -17,6 +18,9 @@ position = Vector2(654, 409)
|
||||||
|
|
||||||
[node name="Bears" type="Node" parent="."]
|
[node name="Bears" type="Node" parent="."]
|
||||||
|
|
||||||
|
[node name="Strikes" type="Node2D" parent="."]
|
||||||
|
script = ExtResource("4_fpagp")
|
||||||
|
|
||||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
[node name="ColorRect" type="ColorRect" parent="CanvasLayer"]
|
[node name="ColorRect" type="ColorRect" parent="CanvasLayer"]
|
||||||
|
|
Loading…
Reference in New Issue