123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- extends KinematicBody2D
- func damage(arg, id):
- vida += arg
- get_tree().get_nodes_in_group('server')[0]._enemy_dmg(enemy_id)
- if vida <= 0:
- get_tree().get_nodes_in_group('enemy_authority')[0].death_count(id)
- queue_free()
- var enemy_id = 0
- var type = 0
- var fliph = 0
- export var vida = 2
- # Called when the node enters the scene tree for the first time.
- var motion = Vector2(0,0)
- var target
- var target_position_buff
- func find_target():
- var data = get_tree().get_nodes_in_group('players')
- if data.size() > 0:
- data.shuffle()
- target_position_buff = data[0].global_position
- return data[0]
- func _ready(): find_target()
- var bullet = preload('res://bullet.tscn')
- var firerate = 30
- var fireratebuff = 30
- var alert = false
- var state = 'walk'
- var behaviours = {
- 'walkleft':120,
- 'walkright':120,
- 'idle':60,
- 'knockback':60,
- 'canon':60,
- 'die':120,
- 'followtarget':120,
- 'blowup':60,
- }
- export var gen = ['walkleft','walkright','idle','canon']
- 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)
- func _physics_process(delta):
- clock -= 1
- match state:
- 'walkleft':
- sprite_loader('walk',global_position,enemy_id)
- motion.x = 75
- 'walkright':
- sprite_loader('walk',global_position,enemy_id)
- motion.x = -75
- 'idle':
- sprite_loader('idle',global_position,enemy_id)
- motion.x = 0
- 'knockback':
- sprite_loader('knockback',global_position,enemy_id)
- motion.x = 0
- 'canon':
- if onceacycle:
- sprite_loader('canon',global_position,enemy_id)
- onceacycle = false
- var instancer = load('res://enemie/tankcanonball.tscn').instance()
- add_child(instancer)
- instancer.global_position = global_position
- motion.x = 0
- 'die':
- sprite_loader('die',global_position,enemy_id)
- motion.x = 0
- 'followtarget':
- if target == null:
- target = find_target()
- return
- if motion == Vector2(0,0): motion = (target_position_buff - global_position).normalized() * 150
- if clock == 0:
- gen.shuffle()
- state = gen[0]
- clock = behaviours[state]
- print(state)
- onceacycle = true
- move_and_slide(motion)
- func _on_Area2D_body_entered(body):
- if body.is_in_group('player'):
- sprite_loader('explosion',global_position,enemy_id)
- body.damage(-20, enemy_id)
- queue_free()
- if body.is_in_group('terrain'):
- sprite_loader('explosion',global_position,enemy_id)
- queue_free()
- pass # Replace with function body.
|