make moss spawn next to water
This commit is contained in:
parent
1c98e550c5
commit
61a33c05c0
@ -29,6 +29,9 @@ 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=7]
|
||||||
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
[sub_resource type="ConvexPolygonShape2D" id=8]
|
[sub_resource type="ConvexPolygonShape2D" id=8]
|
||||||
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
@ -53,10 +56,7 @@ points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
|||||||
[sub_resource type="ConvexPolygonShape2D" id=15]
|
[sub_resource type="ConvexPolygonShape2D" id=15]
|
||||||
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=16]
|
[sub_resource type="TileSet" id=16]
|
||||||
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
|
||||||
|
|
||||||
[sub_resource type="TileSet" id=7]
|
|
||||||
0/name = "dirt.png 0"
|
0/name = "dirt.png 0"
|
||||||
0/texture = ExtResource( 2 )
|
0/texture = ExtResource( 2 )
|
||||||
0/tex_offset = Vector2( 0, 0 )
|
0/tex_offset = Vector2( 0, 0 )
|
||||||
@ -159,62 +159,62 @@ 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 = SubResource( 7 )
|
||||||
2/shape_one_way = false
|
2/shape_one_way = false
|
||||||
2/shape_one_way_margin = 1.0
|
2/shape_one_way_margin = 1.0
|
||||||
2/shapes = [ {
|
2/shapes = [ {
|
||||||
"autotile_coord": Vector2( 0, 0 ),
|
"autotile_coord": Vector2( 0, 0 ),
|
||||||
"one_way": false,
|
"one_way": false,
|
||||||
"one_way_margin": 1.0,
|
"one_way_margin": 1.0,
|
||||||
"shape": SubResource( 8 ),
|
"shape": SubResource( 7 ),
|
||||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
}, {
|
}, {
|
||||||
"autotile_coord": Vector2( 1, 0 ),
|
"autotile_coord": Vector2( 1, 0 ),
|
||||||
"one_way": false,
|
"one_way": false,
|
||||||
"one_way_margin": 1.0,
|
"one_way_margin": 1.0,
|
||||||
"shape": SubResource( 9 ),
|
"shape": SubResource( 8 ),
|
||||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
}, {
|
}, {
|
||||||
"autotile_coord": Vector2( 2, 0 ),
|
"autotile_coord": Vector2( 2, 0 ),
|
||||||
"one_way": false,
|
"one_way": false,
|
||||||
"one_way_margin": 1.0,
|
"one_way_margin": 1.0,
|
||||||
"shape": SubResource( 10 ),
|
"shape": SubResource( 9 ),
|
||||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
}, {
|
}, {
|
||||||
"autotile_coord": Vector2( 0, 1 ),
|
"autotile_coord": Vector2( 0, 1 ),
|
||||||
"one_way": false,
|
"one_way": false,
|
||||||
"one_way_margin": 1.0,
|
"one_way_margin": 1.0,
|
||||||
"shape": SubResource( 11 ),
|
"shape": SubResource( 10 ),
|
||||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
}, {
|
}, {
|
||||||
"autotile_coord": Vector2( 1, 1 ),
|
"autotile_coord": Vector2( 1, 1 ),
|
||||||
"one_way": false,
|
"one_way": false,
|
||||||
"one_way_margin": 1.0,
|
"one_way_margin": 1.0,
|
||||||
"shape": SubResource( 12 ),
|
"shape": SubResource( 11 ),
|
||||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
}, {
|
}, {
|
||||||
"autotile_coord": Vector2( 2, 1 ),
|
"autotile_coord": Vector2( 2, 1 ),
|
||||||
"one_way": false,
|
"one_way": false,
|
||||||
"one_way_margin": 1.0,
|
"one_way_margin": 1.0,
|
||||||
"shape": SubResource( 13 ),
|
"shape": SubResource( 12 ),
|
||||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
}, {
|
}, {
|
||||||
"autotile_coord": Vector2( 0, 2 ),
|
"autotile_coord": Vector2( 0, 2 ),
|
||||||
"one_way": false,
|
"one_way": false,
|
||||||
"one_way_margin": 1.0,
|
"one_way_margin": 1.0,
|
||||||
"shape": SubResource( 14 ),
|
"shape": SubResource( 13 ),
|
||||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
}, {
|
}, {
|
||||||
"autotile_coord": Vector2( 1, 2 ),
|
"autotile_coord": Vector2( 1, 2 ),
|
||||||
"one_way": false,
|
"one_way": false,
|
||||||
"one_way_margin": 1.0,
|
"one_way_margin": 1.0,
|
||||||
"shape": SubResource( 15 ),
|
"shape": SubResource( 14 ),
|
||||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
}, {
|
}, {
|
||||||
"autotile_coord": Vector2( 2, 2 ),
|
"autotile_coord": Vector2( 2, 2 ),
|
||||||
"one_way": false,
|
"one_way": false,
|
||||||
"one_way_margin": 1.0,
|
"one_way_margin": 1.0,
|
||||||
"shape": SubResource( 16 ),
|
"shape": SubResource( 15 ),
|
||||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
} ]
|
} ]
|
||||||
2/z_index = 0
|
2/z_index = 0
|
||||||
@ -229,7 +229,7 @@ script = ExtResource( 8 )
|
|||||||
[node name="Tween" type="Tween" parent="Camera2D"]
|
[node name="Tween" type="Tween" parent="Camera2D"]
|
||||||
|
|
||||||
[node name="TileMap" type="TileMap" parent="."]
|
[node name="TileMap" type="TileMap" parent="."]
|
||||||
tile_set = SubResource( 7 )
|
tile_set = SubResource( 16 )
|
||||||
cell_size = Vector2( 8, 8 )
|
cell_size = Vector2( 8, 8 )
|
||||||
cell_quadrant_size = 8
|
cell_quadrant_size = 8
|
||||||
cell_custom_transform = Transform2D( 8, 0, 0, 8, 0, 0 )
|
cell_custom_transform = Transform2D( 8, 0, 0, 8, 0, 0 )
|
||||||
|
58
src/spawn.gd
58
src/spawn.gd
@ -1,24 +1,50 @@
|
|||||||
extends Timer
|
extends Timer
|
||||||
|
|
||||||
onready var tilesmap = $"../TileMap"
|
onready var tilesmap = $"../TileMap"
|
||||||
onready var tiles = tilesmap.get_used_cells_by_id(0)
|
onready var dirttiles = tilesmap.get_used_cells_by_id(0)
|
||||||
onready var tilesize = tilesmap.tile_set.autotile_get_size(0)
|
onready var tilesize = tilesmap.tile_set.autotile_get_size(0)
|
||||||
|
|
||||||
func _on_Timer_timeout():
|
onready var watertiles = tilesmap.get_used_cells_by_id(2)
|
||||||
var spawner = tiles[ randi() % tiles.size() ]
|
onready var coast = find_coast()
|
||||||
|
|
||||||
|
const MOVEMENT_VECTORS = [
|
||||||
|
Vector2.UP,
|
||||||
|
Vector2.RIGHT,
|
||||||
|
Vector2.DOWN,
|
||||||
|
Vector2.LEFT
|
||||||
|
]
|
||||||
|
|
||||||
|
func _on_Timer_timeout():
|
||||||
|
var spawner = dirttiles[ randi() % dirttiles.size() ]
|
||||||
|
var mossspawner = coast[ randi() % coast.size() ]
|
||||||
|
|
||||||
var random = randi() % 100
|
var random = randi() % 100
|
||||||
|
|
||||||
var scene = load("res://NPCs/moss.tscn")
|
var mossscene = load("res://NPCs/moss.tscn")
|
||||||
|
var mossinstance = mossscene.instance()
|
||||||
if random in range(0, 20):
|
mossinstance.position = mossspawner * tilesize + (tilesize / 2)
|
||||||
scene = load("res://NPCs/femalegoblin.tscn")
|
get_parent().add_child(mossinstance)
|
||||||
scene = load("res://NPCs/malegoblin.tscn")
|
|
||||||
var instance = scene.instance()
|
if random in range(0, 25):
|
||||||
instance.position = spawner * tilesize + (tilesize / 2)
|
var femalegoblinscene = load("res://NPCs/femalegoblin.tscn")
|
||||||
get_parent().add_child(instance)
|
var femalegoblininstance = femalegoblinscene.instance()
|
||||||
if random in range(20,30):
|
femalegoblininstance.position = spawner * tilesize + (tilesize / 2)
|
||||||
scene = load("res://NPCs/ooze.tscn")
|
get_parent().add_child(femalegoblininstance)
|
||||||
var instance = scene.instance()
|
if random in range(25, 50):
|
||||||
instance.position = spawner * tilesize + (tilesize / 2)
|
var malegoblinscene = load("res://NPCs/malegoblin.tscn")
|
||||||
get_parent().add_child(instance)
|
var malegoblininstance = malegoblinscene.instance()
|
||||||
|
malegoblininstance.position = spawner * tilesize + (tilesize / 2)
|
||||||
|
get_parent().add_child(malegoblininstance)
|
||||||
|
if random in range(50,75):
|
||||||
|
var oozescene = load("res://NPCs/ooze.tscn")
|
||||||
|
var oozeinstance = oozescene.instance()
|
||||||
|
oozeinstance.position = spawner * tilesize + (tilesize / 2)
|
||||||
|
|
||||||
|
func find_coast():
|
||||||
|
var coast = []
|
||||||
|
for dirt in dirttiles:
|
||||||
|
for direction in MOVEMENT_VECTORS:
|
||||||
|
if dirt + direction in watertiles:
|
||||||
|
coast.append(dirt)
|
||||||
|
break
|
||||||
|
return coast
|
||||||
|
Loading…
Reference in New Issue
Block a user