fix spawning
This commit is contained in:
parent
130a538509
commit
1c98e550c5
@ -5,13 +5,13 @@
|
|||||||
[ext_resource path="res://Audio/Hits/goblinattack.ogg" type="AudioStream" id=3]
|
[ext_resource path="res://Audio/Hits/goblinattack.ogg" type="AudioStream" id=3]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=1]
|
[sub_resource type="RectangleShape2D" id=1]
|
||||||
extents = Vector2( 5.89857, 6.21018 )
|
extents = Vector2( 6, 6 )
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=2]
|
[sub_resource type="RectangleShape2D" id=2]
|
||||||
extents = Vector2( 5.81983, 5.97394 )
|
extents = Vector2( 6, 6 )
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=3]
|
[sub_resource type="RectangleShape2D" id=3]
|
||||||
extents = Vector2( 5.66234, 5.58022 )
|
extents = Vector2( 6, 6 )
|
||||||
|
|
||||||
[node name="big_ooze" type="KinematicBody2D"]
|
[node name="big_ooze" type="KinematicBody2D"]
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
@ -19,14 +19,27 @@ func _on_death_finished():
|
|||||||
var instance1 = ooze.instance()
|
var instance1 = ooze.instance()
|
||||||
var instance2 = ooze.instance()
|
var instance2 = ooze.instance()
|
||||||
instance1.position = position
|
instance1.position = position
|
||||||
instance2.position = position
|
instance2.position = find_free_position(position)
|
||||||
get_parent().add_child(instance1)
|
get_parent().add_child(instance1)
|
||||||
get_parent().add_child(instance2)
|
get_parent().add_child(instance2)
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
||||||
func _on_Hitbox_area_entered(_area):
|
func _on_Hitbox_area_entered(_area):
|
||||||
yield(get_tree().create_timer(2.0),"timeout")
|
# NERF OOZE
|
||||||
var ooze = load("res://NPCs/ooze.tscn")
|
#yield(get_tree().create_timer(2.0),"timeout")
|
||||||
var instance = ooze.instance()
|
#var ooze = load("res://NPCs/ooze.tscn")
|
||||||
instance.position = position
|
#var instance = ooze.instance()
|
||||||
get_parent().add_child(instance)
|
#instance.position = position
|
||||||
|
#get_parent().add_child(instance)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func find_free_position(start, skip = 0):
|
||||||
|
var tilesmap = $"../TileMap"
|
||||||
|
|
||||||
|
var direction = randi() % 4
|
||||||
|
var pos = start + MOVEMENT_VECTORS[direction]*11
|
||||||
|
for _i in range(0, skip + 1):
|
||||||
|
while tilesmap.get_cellv(tilesmap.world_to_map(pos)) != 0:
|
||||||
|
direction = (direction + 1) % 4
|
||||||
|
pos = start + MOVEMENT_VECTORS[direction]*11
|
||||||
|
return pos
|
||||||
|
@ -13,18 +13,13 @@ func _physics_process(_delta):
|
|||||||
if pregnancy == 20:
|
if pregnancy == 20:
|
||||||
var female = load("res://NPCs/femalegoblin.tscn")
|
var female = load("res://NPCs/femalegoblin.tscn")
|
||||||
var male = load("res://NPCs/malegoblin.tscn")
|
var male = load("res://NPCs/malegoblin.tscn")
|
||||||
var femalechild1 = female.instance()
|
var femalechild = female.instance()
|
||||||
var femalechild2 = female.instance()
|
var malechild = male.instance()
|
||||||
var malechild1 = male.instance()
|
femalechild.position = find_free_position(position)
|
||||||
var malechild2 = male.instance()
|
femalechild.pregnancy = 200
|
||||||
femalechild1.position = position
|
malechild.position = find_free_position(position, 1)
|
||||||
femalechild2.position = position
|
get_parent().add_child(femalechild)
|
||||||
malechild1.position = position
|
get_parent().add_child(malechild)
|
||||||
malechild2.position = position
|
|
||||||
get_parent().add_child(femalechild1)
|
|
||||||
get_parent().add_child(femalechild2)
|
|
||||||
get_parent().add_child(malechild1)
|
|
||||||
get_parent().add_child(malechild2)
|
|
||||||
if pregnancy > 0:
|
if pregnancy > 0:
|
||||||
pregnancy = pregnancy - 1
|
pregnancy = pregnancy - 1
|
||||||
var movement = MOVEMENT_VECTORS[randi() % 4]
|
var movement = MOVEMENT_VECTORS[randi() % 4]
|
||||||
@ -39,3 +34,14 @@ func _on_death_finished():
|
|||||||
func _on_Romance_area_entered(area):
|
func _on_Romance_area_entered(area):
|
||||||
if area.is_in_group("malegoblin") and pregnancy == 0:
|
if area.is_in_group("malegoblin") and pregnancy == 0:
|
||||||
pregnancy = 100
|
pregnancy = 100
|
||||||
|
|
||||||
|
func find_free_position(start, skip = 0):
|
||||||
|
var tilesmap = $"../TileMap"
|
||||||
|
|
||||||
|
var direction = randi() % 4
|
||||||
|
var pos = start + MOVEMENT_VECTORS[direction]*11
|
||||||
|
for _i in range(0, skip):
|
||||||
|
while tilesmap.get_cellv(tilesmap.world_to_map(pos)) != 0:
|
||||||
|
direction = (direction + 1) % 4
|
||||||
|
pos = start + MOVEMENT_VECTORS[direction]*11
|
||||||
|
return pos
|
||||||
|
@ -24,7 +24,7 @@ func _on_death_finished():
|
|||||||
var instance1 = smallooze.instance()
|
var instance1 = smallooze.instance()
|
||||||
var instance2 = smallooze.instance()
|
var instance2 = smallooze.instance()
|
||||||
instance1.position = position
|
instance1.position = position
|
||||||
instance2.position = position
|
instance2.position = find_free_position(position)
|
||||||
get_parent().add_child(instance1)
|
get_parent().add_child(instance1)
|
||||||
get_parent().add_child(instance2)
|
get_parent().add_child(instance2)
|
||||||
queue_free()
|
queue_free()
|
||||||
@ -36,3 +36,14 @@ func _on_Hitbox_area_entered(_area):
|
|||||||
instance.position = position
|
instance.position = position
|
||||||
get_parent().add_child(instance)
|
get_parent().add_child(instance)
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
||||||
|
func find_free_position(start, skip = 0):
|
||||||
|
var tilesmap = $"../TileMap"
|
||||||
|
|
||||||
|
var direction = randi() % 4
|
||||||
|
var pos = start + MOVEMENT_VECTORS[direction]*11
|
||||||
|
for _i in range(0, skip):
|
||||||
|
while tilesmap.get_cellv(tilesmap.world_to_map(pos)) != 0:
|
||||||
|
direction = (direction + 1) % 4
|
||||||
|
pos = start + MOVEMENT_VECTORS[direction]*11
|
||||||
|
return pos
|
||||||
|
@ -5,13 +5,13 @@
|
|||||||
[ext_resource path="res://Audio/Hits/goblinattack.ogg" type="AudioStream" id=3]
|
[ext_resource path="res://Audio/Hits/goblinattack.ogg" type="AudioStream" id=3]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=1]
|
[sub_resource type="RectangleShape2D" id=1]
|
||||||
extents = Vector2( 4.7174, 4.63528 )
|
extents = Vector2( 5, 5 )
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=2]
|
[sub_resource type="RectangleShape2D" id=2]
|
||||||
extents = Vector2( 4.79614, 4.55653 )
|
extents = Vector2( 5, 5 )
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=3]
|
[sub_resource type="RectangleShape2D" id=3]
|
||||||
extents = Vector2( 4.7174, 4.55653 )
|
extents = Vector2( 5, 5 )
|
||||||
|
|
||||||
[node name="ooze" type="KinematicBody2D"]
|
[node name="ooze" type="KinematicBody2D"]
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
@ -29,3 +29,4 @@ func _on_Hitbox_area_entered(_area):
|
|||||||
instance.position = position
|
instance.position = position
|
||||||
get_parent().add_child(instance)
|
get_parent().add_child(instance)
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=18 format=2]
|
[gd_scene load_steps=27 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Tilesets/stone.png" type="Texture" id=1]
|
[ext_resource path="res://Tilesets/stone.png" type="Texture" id=1]
|
||||||
[ext_resource path="res://Tilesets/dirt.png" type="Texture" id=2]
|
[ext_resource path="res://Tilesets/dirt.png" type="Texture" id=2]
|
||||||
@ -9,7 +9,7 @@
|
|||||||
[ext_resource path="res://Audio/Background/cave.ogg" type="AudioStream" id=7]
|
[ext_resource path="res://Audio/Background/cave.ogg" type="AudioStream" id=7]
|
||||||
[ext_resource path="res://camera.gd" type="Script" id=8]
|
[ext_resource path="res://camera.gd" type="Script" id=8]
|
||||||
[ext_resource path="res://NPCs/big_ooze.tscn" type="PackedScene" id=9]
|
[ext_resource path="res://NPCs/big_ooze.tscn" type="PackedScene" id=9]
|
||||||
[ext_resource path="res://spaw.gd" type="Script" id=10]
|
[ext_resource path="res://spawn.gd" type="Script" id=10]
|
||||||
|
|
||||||
[sub_resource type="ConvexPolygonShape2D" id=1]
|
[sub_resource type="ConvexPolygonShape2D" id=1]
|
||||||
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
@ -29,6 +29,33 @@ points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
|||||||
[sub_resource type="ConvexPolygonShape2D" id=6]
|
[sub_resource type="ConvexPolygonShape2D" id=6]
|
||||||
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=8]
|
||||||
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=9]
|
||||||
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=10]
|
||||||
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=11]
|
||||||
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=12]
|
||||||
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=13]
|
||||||
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=14]
|
||||||
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=15]
|
||||||
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=16]
|
||||||
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
[sub_resource type="TileSet" id=7]
|
[sub_resource type="TileSet" id=7]
|
||||||
0/name = "dirt.png 0"
|
0/name = "dirt.png 0"
|
||||||
0/texture = ExtResource( 2 )
|
0/texture = ExtResource( 2 )
|
||||||
@ -132,9 +159,64 @@ points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
|||||||
2/navigation_offset = Vector2( 0, 0 )
|
2/navigation_offset = Vector2( 0, 0 )
|
||||||
2/shape_offset = Vector2( 0, 0 )
|
2/shape_offset = Vector2( 0, 0 )
|
||||||
2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
2/shape = SubResource( 8 )
|
||||||
2/shape_one_way = false
|
2/shape_one_way = false
|
||||||
2/shape_one_way_margin = 0.0
|
2/shape_one_way_margin = 1.0
|
||||||
2/shapes = [ ]
|
2/shapes = [ {
|
||||||
|
"autotile_coord": Vector2( 0, 0 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 8 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
}, {
|
||||||
|
"autotile_coord": Vector2( 1, 0 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 9 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
}, {
|
||||||
|
"autotile_coord": Vector2( 2, 0 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 10 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
}, {
|
||||||
|
"autotile_coord": Vector2( 0, 1 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 11 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
}, {
|
||||||
|
"autotile_coord": Vector2( 1, 1 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 12 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
}, {
|
||||||
|
"autotile_coord": Vector2( 2, 1 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 13 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
}, {
|
||||||
|
"autotile_coord": Vector2( 0, 2 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 14 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
}, {
|
||||||
|
"autotile_coord": Vector2( 1, 2 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 15 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
}, {
|
||||||
|
"autotile_coord": Vector2( 2, 2 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 16 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
} ]
|
||||||
2/z_index = 0
|
2/z_index = 0
|
||||||
|
|
||||||
[node name="World" type="Node2D"]
|
[node name="World" type="Node2D"]
|
||||||
|
24
src/spaw.gd
24
src/spaw.gd
@ -1,24 +0,0 @@
|
|||||||
extends Timer
|
|
||||||
|
|
||||||
#onready var mapwidth = get("display/window/size/width")
|
|
||||||
#onready var mapheight = get("display/window/size/height")
|
|
||||||
|
|
||||||
onready var mapwidth = 80
|
|
||||||
onready var mapheight = 64
|
|
||||||
|
|
||||||
func _on_Timer_timeout():
|
|
||||||
var width = randi() % mapwidth
|
|
||||||
var height = randi() % mapheight
|
|
||||||
|
|
||||||
var random = randi() % 100
|
|
||||||
|
|
||||||
var scene = load("res://NPCs/moss.tscn")
|
|
||||||
if random in range(0, 10):
|
|
||||||
scene = load("res://NPCs/femalegoblin.tscn")
|
|
||||||
if random in range(10, 20):
|
|
||||||
scene = load("res://NPCs/malegoblin.tscn")
|
|
||||||
if random in range(20, 40):
|
|
||||||
scene = load("res://NPCs/ooze.tscn")
|
|
||||||
var instance = scene.instance()
|
|
||||||
instance.position = Vector2(width, height)
|
|
||||||
get_parent().add_child(instance)
|
|
24
src/spawn.gd
Normal file
24
src/spawn.gd
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
extends Timer
|
||||||
|
|
||||||
|
onready var tilesmap = $"../TileMap"
|
||||||
|
onready var tiles = tilesmap.get_used_cells_by_id(0)
|
||||||
|
onready var tilesize = tilesmap.tile_set.autotile_get_size(0)
|
||||||
|
|
||||||
|
func _on_Timer_timeout():
|
||||||
|
var spawner = tiles[ randi() % tiles.size() ]
|
||||||
|
|
||||||
|
var random = randi() % 100
|
||||||
|
|
||||||
|
var scene = load("res://NPCs/moss.tscn")
|
||||||
|
|
||||||
|
if random in range(0, 20):
|
||||||
|
scene = load("res://NPCs/femalegoblin.tscn")
|
||||||
|
scene = load("res://NPCs/malegoblin.tscn")
|
||||||
|
var instance = scene.instance()
|
||||||
|
instance.position = spawner * tilesize + (tilesize / 2)
|
||||||
|
get_parent().add_child(instance)
|
||||||
|
if random in range(20,30):
|
||||||
|
scene = load("res://NPCs/ooze.tscn")
|
||||||
|
var instance = scene.instance()
|
||||||
|
instance.position = spawner * tilesize + (tilesize / 2)
|
||||||
|
get_parent().add_child(instance)
|
Loading…
Reference in New Issue
Block a user