Forráskód Böngészése

bunch of fixes based on feedback, adding changelog

galo 1 éve
szülő
commit
375a2345c0
6 módosított fájl, 30 hozzáadás és 22 törlés
  1. 8 4
      Client.gd
  2. 2 1
      Server.gd
  3. 17 4
      enemie/newai.gd
  4. 1 0
      enemie/tankboss.tscn
  5. 1 7
      enemie/tankcanonball.tscn
  6. 1 6
      main.tscn

+ 8 - 4
Client.gd

@@ -250,9 +250,13 @@ remote func add_sprite(anim, pos, id):
 		add_child(instancer)
 		instancer.id = id
 		sprite_list[id] = instancer
-	sprite_list[id].global_position = pos
-	if sprite_list[id].get_animation() != anim: sprite_list[id].set_animation(anim)
+	if is_instance_valid(sprite_list[id]):
+		sprite_list[id].global_position = pos
+		if sprite_list[id].get_animation() != anim: 
+			sprite_list[id].set_animation(anim)
+			sprite_list[id]._set_playing(true) 
 
 remote func nuke_sprite(id):
-	if sprite_list.keys().has(id):
-		sprite_list[id].queue_free()
+	if is_instance_valid(sprite_list[id]):
+		if sprite_list.keys().has(id):
+			sprite_list[id].queue_free()

+ 2 - 1
Server.gd

@@ -201,5 +201,6 @@ func level_up(lv, maxhp, gain, dmgup, id):
 func spriter_request(anim, pos, id):
 	rpc_id( 0,'add_sprite', anim, pos, id)
 
-func spriter_nuke_request(id):
+func spriter_nuke_request(time, id):
+	yield(get_tree().create_timer(time),"timeout")
 	rpc_id( 0,'nuke_sprite', id)

+ 17 - 4
enemie/newai.gd

@@ -26,7 +26,9 @@ func find_target():
 		target_position_buff = data[0].global_position
 		return data[0]
 
-func _ready(): find_target()
+func _ready(): 
+	enemy_id = get_tree().get_nodes_in_group('enemy').size()+1
+	find_target()
 
 var bullet = preload('res://bullet.tscn')
 var firerate = 30
@@ -51,7 +53,12 @@ var clock = 1
 var onceacycle = true
 
 func sprite_loader(anim,pos,id):
-	get_tree().get_nodes_in_group('server')[0].spriter_request(anim,pos,id)
+	for x in get_tree().get_nodes_in_group('server'):
+		x.spriter_request(anim,pos,id)
+
+func nuker_loader(time):
+	for x in get_tree().get_nodes_in_group('server'):
+		x.spriter_nuke_request(time, enemy_id)
 
 func _physics_process(delta):
 	clock -= 1
@@ -59,15 +66,19 @@ func _physics_process(delta):
 		'walkleft':
 			sprite_loader('walk',global_position,enemy_id)
 			motion.x = 75
+			motion.y = 40
 		'walkright':
 			sprite_loader('walk',global_position,enemy_id)
 			motion.x = -75
+			motion.y = 40
 		'idle':
 			sprite_loader('idle',global_position,enemy_id)
 			motion.x = 0
+			motion.y = 40
 		'knockback':
 			sprite_loader('knockback',global_position,enemy_id)
 			motion.x = 0
+			motion.y = 40
 		'canon':
 			if onceacycle:
 				sprite_loader('canon',global_position,enemy_id)
@@ -76,6 +87,7 @@ func _physics_process(delta):
 				add_child(instancer)
 				instancer.global_position = global_position
 				motion.x = 0
+				motion.y = 40
 		'die':
 			sprite_loader('die',global_position,enemy_id)
 			motion.x = 0
@@ -94,12 +106,13 @@ func _physics_process(delta):
 
 
 func _on_Area2D_body_entered(body):
+	sprite_loader('explosion',global_position,enemy_id)
 	if body.is_in_group('player'):
-		sprite_loader('explosion',global_position,enemy_id)
 		body.damage(-20, enemy_id)
+		nuker_loader(1.0)
 		queue_free()
 	if body.is_in_group('terrain'):
-		sprite_loader('explosion',global_position,enemy_id)
+		nuker_loader(1.0)
 		queue_free()
 	pass # Replace with function body.
 

+ 1 - 0
enemie/tankboss.tscn

@@ -13,4 +13,5 @@ script = ExtResource( 1 )
 vida = 300
 
 [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
+position = Vector2( 0, -17.2305 )
 shape = SubResource( 23 )

+ 1 - 7
enemie/tankcanonball.tscn

@@ -1,10 +1,7 @@
-[gd_scene load_steps=4 format=2]
+[gd_scene load_steps=3 format=2]
 
 [ext_resource path="res://enemie/newai.gd" type="Script" id=1]
 
-[sub_resource type="RectangleShape2D" id=23]
-extents = Vector2( 12.391, 11.9423 )
-
 [sub_resource type="RectangleShape2D" id=24]
 extents = Vector2( 45, 5 )
 
@@ -15,9 +12,6 @@ collision_mask = 0
 script = ExtResource( 1 )
 gen = [ "followtarget" ]
 
-[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
-shape = SubResource( 23 )
-
 [node name="Area2D" type="Area2D" parent="."]
 collision_layer = 10
 collision_mask = 10

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1 - 6
main.tscn


Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott