浏览代码

bunch of fixes based on feedback, adding changelog

galo 1 年之前
父节点
当前提交
61f370b751
共有 5 个文件被更改,包括 83 次插入18 次删除
  1. 12 0
      Health.gd
  2. 64 16
      bacteria.gd
  3. 4 2
      bacteria.tscn
  4. 2 0
      hitbox.gd
  5. 1 0
      hitbox.tscn

+ 12 - 0
Health.gd

@@ -6,9 +6,21 @@ signal die
 signal damage(dmg)
 export(NodePath) var progressbar
 export(NodePath) var text
+var regen = 0.0
+var regen_time = 7
+var reactive_dmg = 0.0
+
+var buff = 0
+
+func _physics_process(delta):
+	buff += 1
+	if fmod(buff,regen_time*60) == 00:
+		print('regen')
+		_damage(-regen * health_max ,'',self)
 
 func _damage(dmg, effect, caller):
 	health -= dmg
+#	health = clamp(health,0,health_max)
 	emit_signal('damage', dmg)
 	print('dmg to ' + str(get_path()) + " : " + str(health))
 	if health <= 0:

+ 64 - 16
bacteria.gd

@@ -11,36 +11,84 @@ var totalxp = 0
 var nextxp = 100
 var lv = 1
 
-var apendices = {
+var menbros = {
 	'braco_bruto':{
 		'img':load('res://leg3.png'),
-		'range': 10,
-		'dmg':10,
+		'range': 0.75,
+		'dmg':1.25,
 		'atkspeed':1.0,
 	},
 	'menbro_chicote':{
 		'img':load('res://leg2.png'),
-		'range': 10,
-		'dmg':10,
-		'atkspeed':1.0,
+		'range': 1.0,
+		'dmg':0.75,
+		'atkspeed':1.25,
 	},
-	'cutucao_relampago':{
+	'o_corredor':{
 		'img':load('res://leg.png'),
-		'range': 10,
-		'dmg':10,
-		'atkspeed':1.0,
+		'hp': 0.8,
+		'dmg':0.8,
+		'speed':1.2,
 	}
 }
 
+var corpo = {
+	'carapaca_firme':{
+		'hp':1.5,
+	},
+	'metabolismo_avancado':{
+		'regen':1.05,
+		'regen_time':7.0,
+	},
+	'cerebro_avantajado':{
+		'xpmult':1.25,
+	},
+	'escama reflexiva':{
+		'react_dmg' : 1.0,
+	},
+}
+
+var apendice = {
+	'olhos_admirantes':{
+		'camzoom' : 1.5,
+	},
+}
+
 var dict = {
-	'a': apendices.braco_bruto,
-	'b': apendices.menbro_chicote,
-	'c': apendices.cutucao_relampago,
+	'a': menbros.braco_bruto,
+	'b': menbros.menbro_chicote,
+	'c': menbros.o_corredor,
+	'd' : corpo.cerebro_avantajado,
+	'e': apendice.olhos_admirantes
 }
 
+func get_stat(arg):
+	var buff = 1.0
+	for x in dict.values():
+		if x.has(arg):
+			buff *= x[arg]
+	return buff
+
 func _ready():
+	
+	self.speed = get_stat('speed') * 100
+	self.xpmult = get_stat('xpmult')
+	$hitbox.dmg = get_stat('dmg') * 10
+	$Health.reactive_dmg = get_stat('dmg') * get_stat('react_dmg')
+	$hitbox.apc = get_stat('atkspeed')
+	$Health.regen = get_stat('regen') - 1
+	$Health.health = get_stat('hp') * 50
+	$Health.health_max = get_stat('hp') * 50
+	$Camera2D.zoom.x = get_stat('camzoom')
+	$Camera2D.zoom.y = get_stat('camzoom')
+	$Health._ready()
+	$hitbox/CollisionShape2D.scale.x =  get_stat('ranged') 
+	$hitbox/CollisionShape2D.scale.y =  get_stat('ranged')
+	
 	for x in get_node("Icon").get_children():
 		for y in x.get_children():
+			for z in y.get_children():
+				z.queue_free()
 			var sprite = Sprite.new()
 			sprite.texture = dict[y.name].img
 			y.add_child(sprite)
@@ -60,15 +108,15 @@ func _input(event):
 		motion *= .8
 		
 
-
 func _on_Health_die():
 	emit_signal('dieproxy')
 	pass # Replace with function body.
 
+var xpmult = 1.0
 
 func _on_hitbox_gotxp(arg):
-	totalxp += arg
-	currentxp += arg
+	totalxp += arg * xpmult
+	currentxp += arg * xpmult
 	if currentxp > nextxp:
 		currentxp -= nextxp
 		nextxp *= 1.5

+ 4 - 2
bacteria.tscn

@@ -237,8 +237,10 @@ align = 1
 [node name="ProgressBar2" type="ProgressBar" parent="CanvasLayer/VBoxContainer/Label2"]
 modulate = Color( 3, 0, 0, 1 )
 show_behind_parent = true
-margin_right = 540.0
-margin_bottom = 14.0
+margin_left = 3.0
+margin_top = 2.0
+margin_right = 543.0
+margin_bottom = 16.0
 max_value = 50.0
 value = 20.0
 percent_visible = false

+ 2 - 0
hitbox.gd

@@ -9,6 +9,8 @@ func _on_hitbox_body_entered(body):
 	if body.is_in_group(affect):
 		if body.has_node('Health'):
 			body.get_node('Health')._damage(dmg, effect, self)
+		get_parent().get_node('Health')._damage(body.get_node('Health').reactive_dmg,'',self)
+		print('reactive dmg is : ' + str(body.get_node('Health').reactive_dmg))
 	$CollisionShape2D.call_deferred('set_disabled', true)
 	$Timer.wait_time = 1.0/apc
 	yield($Timer, 'timeout')

+ 1 - 0
hitbox.tscn

@@ -13,4 +13,5 @@ shape = SubResource( 1 )
 
 [node name="Timer" type="Timer" parent="."]
 autostart = true
+
 [connection signal="body_entered" from="." to="." method="_on_hitbox_body_entered"]