Browse Source

bunch of fixes based on feedback, adding changelog

galo 1 year ago
parent
commit
f08c62b2b9

+ 3 - 0
.import/Carne.png-e58246d1cc3ac873d82ab838788ec0e6.md5

@@ -0,0 +1,3 @@
+source_md5="fb63771626e36a51dfb5374ccaa31257"
+dest_md5="20d8a492187212ccee9e799f2e6981c3"
+

BIN
.import/Carne.png-e58246d1cc3ac873d82ab838788ec0e6.stex


+ 3 - 0
.import/berry.png-124ee34a112649a044627e737da1aeed.md5

@@ -0,0 +1,3 @@
+source_md5="b0b2bddf7ea6dfce0198d508f9dd221c"
+dest_md5="7e5d7ceddee67ff98fd1e6e173cce865"
+

BIN
.import/berry.png-124ee34a112649a044627e737da1aeed.stex


BIN
Carne.png


+ 35 - 0
Carne.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/Carne.png-e58246d1cc3ac873d82ab838788ec0e6.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Carne.png"
+dest_files=[ "res://.import/Carne.png-e58246d1cc3ac873d82ab838788ec0e6.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=false
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

+ 4 - 1
Health.gd

@@ -20,9 +20,10 @@ func _physics_process(delta):
 
 func _damage(dmg, effect, caller):
 	health -= dmg
+	health = min(health,health_max)
 #	health = clamp(health,0,health_max)
 	emit_signal('damage', dmg)
-	print('dmg to ' + str(get_path()) + " : " + str(health))
+	print('dmg to ' + str(get_path()) + " : " + str(health) + " : " +str(dmg))
 	if health <= 0:
 		emit_signal('die')
 		caller._expgain(get_parent().exppt)
@@ -32,6 +33,8 @@ func _damage(dmg, effect, caller):
 		get_node(progressbar).set_max( health_max )
 		get_node(text).set_text( str(health) )
 	
+func _expgain(arg):
+	pass
 
 func _ready():
 	if has_node(progressbar):

+ 30 - 0
Healthpickup.tscn

@@ -0,0 +1,30 @@
+[gd_scene load_steps=5 format=2]
+
+[ext_resource path="res://berry.png" type="Texture" id=1]
+[ext_resource path="res://hitbox.tscn" type="PackedScene" id=2]
+[ext_resource path="res://Health.tscn" type="PackedScene" id=3]
+
+[sub_resource type="GDScript" id=1]
+script/source = "extends Node2D
+
+var exppt = 1
+
+func _ready():
+	$hitbox/CollisionShape2D.call_deferred('set_disabled', true)
+	yield(get_tree().create_timer(1.0), 'timeout')
+	$hitbox/CollisionShape2D.call_deferred('set_disabled', false)
+"
+
+[node name="Health" type="Node2D"]
+script = SubResource( 1 )
+
+[node name="Sprite" type="Sprite" parent="."]
+texture = ExtResource( 1 )
+
+[node name="hitbox" parent="." instance=ExtResource( 2 )]
+dmg = -10
+affect = "player"
+
+[node name="Health" parent="." instance=ExtResource( 3 )]
+
+[connection signal="reloaded" from="hitbox" to="." method="queue_free"]

+ 15 - 15
bacteria.gd

@@ -2,7 +2,7 @@ extends KinematicBody2D
 
 var motion = Vector2()
 var dir = Vector2()
-export var speed = 100
+export var speed = 500
 var attackrange = 80
 signal dieproxy
 var exppt = 0
@@ -20,15 +20,15 @@ var menbros = {
 	},
 	'menbro_chicote':{
 		'img':load('res://leg2.png'),
-		'range': 1.0,
+		'range': 1.25,
 		'dmg':0.75,
 		'atkspeed':1.25,
 	},
 	'o_corredor':{
 		'img':load('res://leg.png'),
-		'hp': 0.8,
-		'dmg':0.8,
-		'speed':1.2,
+		'hp': 0.75,
+		'dmg':0.75,
+		'speed':1.5,
 	}
 }
 
@@ -43,7 +43,7 @@ var corpo = {
 	'cerebro_avantajado':{
 		'xpmult':1.25,
 	},
-	'escama reflexiva':{
+	'escama_reflexiva':{
 		'react_dmg' : 1.0,
 	},
 }
@@ -56,10 +56,10 @@ var apendice = {
 
 var dict = {
 	'a': menbros.braco_bruto,
-	'b': menbros.menbro_chicote,
-	'c': menbros.o_corredor,
-	'd' : corpo.cerebro_avantajado,
-	'e': apendice.olhos_admirantes
+	'b': menbros.braco_bruto,
+	'c': menbros.braco_bruto,
+	'd': corpo.escama_reflexiva,
+	'e': apendice.olhos_admirantes,
 }
 
 func get_stat(arg):
@@ -71,7 +71,7 @@ func get_stat(arg):
 
 func _ready():
 	
-	self.speed = get_stat('speed') * 100
+	self.speed = get_stat('speed') * 200
 	self.xpmult = get_stat('xpmult')
 	$hitbox.dmg = get_stat('dmg') * 10
 	$Health.reactive_dmg = get_stat('dmg') * get_stat('react_dmg')
@@ -82,8 +82,8 @@ func _ready():
 	$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')
+	self.attackrange =  get_stat('range') * 80
+
 	
 	for x in get_node("Icon").get_children():
 		for y in x.get_children():
@@ -104,8 +104,8 @@ func _input(event):
 	if event is InputEventScreenDrag or event is InputEventScreenTouch and event.is_pressed():
 		dir = (event.position - get_global_transform_with_canvas().origin).normalized()
 		motion = dir
-	else:
-		motion *= .8
+#	else:
+#		motion *= .8
 		
 
 func _on_Health_die():

BIN
berry.png


+ 35 - 0
berry.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/berry.png-124ee34a112649a044627e737da1aeed.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://berry.png"
+dest_files=[ "res://.import/berry.png-124ee34a112649a044627e737da1aeed.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=false
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

+ 11 - 0
bettertime.gd

@@ -0,0 +1,11 @@
+extends Node
+
+signal timeout
+var wait_time = 1.0
+
+func _physics_process(delta):
+	wait_time -= delta
+	if wait_time <= 0:
+		emit_signal('timeout')
+		queue_free()
+	

+ 6 - 0
bettertime.tscn

@@ -0,0 +1,6 @@
+[gd_scene load_steps=2 format=2]
+
+[ext_resource path="res://bettertime.gd" type="Script" id=1]
+
+[node name="bettertime" type="Node"]
+script = ExtResource( 1 )

+ 1 - 0
enemy.gd

@@ -11,6 +11,7 @@ export var exppt = 15
 
 func _ready():
 	player = get_tree().get_nodes_in_group('player')[0]
+	$types.play($types.get_animation_list()[round(rand_range(1,2))])
 	pass # Replace with function body.
 
 func _physics_process(delta):

+ 308 - 2
enemy.tscn

@@ -1,12 +1,310 @@
-[gd_scene load_steps=6 format=2]
+[gd_scene load_steps=10 format=2]
 
 [ext_resource path="res://icon.png" type="Texture" id=1]
 [ext_resource path="res://Health.tscn" type="PackedScene" id=2]
 [ext_resource path="res://enemy.gd" type="Script" id=3]
 [ext_resource path="res://hitbox.tscn" type="PackedScene" id=4]
+[ext_resource path="res://meatspawn.gd" type="Script" id=5]
 
 [sub_resource type="RectangleShape2D" id=1]
 
+[sub_resource type="Animation" id=2]
+length = 0.001
+tracks/0/type = "value"
+tracks/0/path = NodePath(".:speed")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 0,
+"values": [ 150 ]
+}
+tracks/1/type = "value"
+tracks/1/path = NodePath(".:exppt")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 0,
+"values": [ 15 ]
+}
+tracks/2/type = "value"
+tracks/2/path = NodePath(".:detectionzone")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 0,
+"values": [ 256 ]
+}
+tracks/3/type = "value"
+tracks/3/path = NodePath(".:reactiontime")
+tracks/3/interp = 1
+tracks/3/loop_wrap = true
+tracks/3/imported = false
+tracks/3/enabled = true
+tracks/3/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 0,
+"values": [ 1 ]
+}
+tracks/4/type = "value"
+tracks/4/path = NodePath(".:attackrange")
+tracks/4/interp = 1
+tracks/4/loop_wrap = true
+tracks/4/imported = false
+tracks/4/enabled = true
+tracks/4/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 0,
+"values": [ 64 ]
+}
+tracks/5/type = "value"
+tracks/5/path = NodePath("hitbox:dmg")
+tracks/5/interp = 1
+tracks/5/loop_wrap = true
+tracks/5/imported = false
+tracks/5/enabled = true
+tracks/5/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 0,
+"values": [ 5 ]
+}
+tracks/6/type = "value"
+tracks/6/path = NodePath("Health:health_max")
+tracks/6/interp = 1
+tracks/6/loop_wrap = true
+tracks/6/imported = false
+tracks/6/enabled = true
+tracks/6/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 0,
+"values": [ 20 ]
+}
+tracks/7/type = "value"
+tracks/7/path = NodePath("Sprite:modulate")
+tracks/7/interp = 1
+tracks/7/loop_wrap = true
+tracks/7/imported = false
+tracks/7/enabled = true
+tracks/7/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 0,
+"values": [ Color( 1, 0, 0, 1 ) ]
+}
+
+[sub_resource type="Animation" id=3]
+resource_name = "enemy"
+tracks/0/type = "value"
+tracks/0/path = NodePath(".:speed")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 150 ]
+}
+tracks/1/type = "value"
+tracks/1/path = NodePath(".:exppt")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 15 ]
+}
+tracks/2/type = "value"
+tracks/2/path = NodePath(".:detectionzone")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 256 ]
+}
+tracks/3/type = "value"
+tracks/3/path = NodePath(".:reactiontime")
+tracks/3/interp = 1
+tracks/3/loop_wrap = true
+tracks/3/imported = false
+tracks/3/enabled = true
+tracks/3/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 1 ]
+}
+tracks/4/type = "value"
+tracks/4/path = NodePath(".:attackrange")
+tracks/4/interp = 1
+tracks/4/loop_wrap = true
+tracks/4/imported = false
+tracks/4/enabled = true
+tracks/4/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 64 ]
+}
+tracks/5/type = "value"
+tracks/5/path = NodePath("hitbox:dmg")
+tracks/5/interp = 1
+tracks/5/loop_wrap = true
+tracks/5/imported = false
+tracks/5/enabled = true
+tracks/5/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 5 ]
+}
+tracks/6/type = "value"
+tracks/6/path = NodePath("Health:health_max")
+tracks/6/interp = 1
+tracks/6/loop_wrap = true
+tracks/6/imported = false
+tracks/6/enabled = true
+tracks/6/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 20 ]
+}
+tracks/7/type = "value"
+tracks/7/path = NodePath("Sprite:modulate")
+tracks/7/interp = 1
+tracks/7/loop_wrap = true
+tracks/7/imported = false
+tracks/7/enabled = true
+tracks/7/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 0,
+"values": [ Color( 1, 0, 0, 1 ) ]
+}
+
+[sub_resource type="Animation" id=4]
+resource_name = "peaceful"
+tracks/0/type = "value"
+tracks/0/path = NodePath(".:speed")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ -150 ]
+}
+tracks/1/type = "value"
+tracks/1/path = NodePath(".:exppt")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 15 ]
+}
+tracks/2/type = "value"
+tracks/2/path = NodePath(".:detectionzone")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 256 ]
+}
+tracks/3/type = "value"
+tracks/3/path = NodePath(".:reactiontime")
+tracks/3/interp = 1
+tracks/3/loop_wrap = true
+tracks/3/imported = false
+tracks/3/enabled = true
+tracks/3/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 1 ]
+}
+tracks/4/type = "value"
+tracks/4/path = NodePath(".:attackrange")
+tracks/4/interp = 1
+tracks/4/loop_wrap = true
+tracks/4/imported = false
+tracks/4/enabled = true
+tracks/4/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 64 ]
+}
+tracks/5/type = "value"
+tracks/5/path = NodePath("hitbox:dmg")
+tracks/5/interp = 1
+tracks/5/loop_wrap = true
+tracks/5/imported = false
+tracks/5/enabled = true
+tracks/5/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 0 ]
+}
+tracks/6/type = "value"
+tracks/6/path = NodePath("Health:health_max")
+tracks/6/interp = 1
+tracks/6/loop_wrap = true
+tracks/6/imported = false
+tracks/6/enabled = true
+tracks/6/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 20 ]
+}
+tracks/7/type = "value"
+tracks/7/path = NodePath("Sprite:modulate")
+tracks/7/interp = 1
+tracks/7/loop_wrap = true
+tracks/7/imported = false
+tracks/7/enabled = true
+tracks/7/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 0,
+"values": [ Color( 0.101961, 1, 0, 1 ) ]
+}
+
 [node name="enemy" type="KinematicBody2D" groups=["enemy"]]
 scale = Vector2( 0.75, 0.75 )
 script = ExtResource( 3 )
@@ -26,4 +324,12 @@ health_max = 20
 dmg = 5
 affect = "player"
 
-[connection signal="die" from="Health" to="." method="queue_free"]
+[node name="types" type="AnimationPlayer" parent="."]
+anims/RESET = SubResource( 2 )
+anims/enemy = SubResource( 3 )
+anims/peaceful = SubResource( 4 )
+
+[node name="die" type="Node2D" parent="."]
+script = ExtResource( 5 )
+
+[connection signal="die" from="Health" to="die" method="_on_Health_die"]

+ 3 - 0
hitbox.gd

@@ -4,6 +4,7 @@ export var dmg = 1
 var effect = ''
 export var affect = 'enemy'
 export var apc = 1.0
+signal reloaded
 
 func _on_hitbox_body_entered(body):
 	if body.is_in_group(affect):
@@ -15,6 +16,7 @@ func _on_hitbox_body_entered(body):
 	$Timer.wait_time = 1.0/apc
 	yield($Timer, 'timeout')
 	$CollisionShape2D.call_deferred('set_disabled', false)
+	emit_signal('reloaded')
 	pass # Replace with function body.
 
 signal gotxp(arg)
@@ -22,3 +24,4 @@ signal gotxp(arg)
 func _expgain(exppt):
 	print(exppt)
 	emit_signal('gotxp',exppt)
+

BIN
leg2.png~


BIN
leg3.png~


+ 7 - 1
main.tscn

@@ -1,8 +1,9 @@
-[gd_scene load_steps=4 format=2]
+[gd_scene load_steps=5 format=2]
 
 [ext_resource path="res://spawner.gd" type="Script" id=1]
 [ext_resource path="res://bacteria.tscn" type="PackedScene" id=2]
 [ext_resource path="res://restarter.gd" type="Script" id=3]
+[ext_resource path="res://Healthpickup.tscn" type="PackedScene" id=4]
 
 [node name="main" type="YSort"]
 
@@ -11,6 +12,11 @@
 [node name="spawner" type="Node2D" parent="."]
 script = ExtResource( 1 )
 
+[node name="spawner2" type="Node2D" parent="."]
+script = ExtResource( 1 )
+enemy_ = ExtResource( 4 )
+spawnspeed = 15.0
+
 [node name="restarter" type="CanvasLayer" parent="."]
 pause_mode = 2
 script = ExtResource( 3 )

+ 20 - 0
meatspawn.gd

@@ -0,0 +1,20 @@
+extends Node2D
+
+export(PackedScene) var enemy_ = preload('res://Healthpickup.tscn')
+var chance = 0.1
+var arg = true
+
+func _on_Health_die():
+	if arg:
+		arg = false
+		var n = randf()
+		print(n)
+		if n < chance:
+			print('spawn carne')
+			var enemy = enemy_.instance()
+			get_parent().get_parent().call_deferred('add_child',enemy)
+			enemy.get_node('Sprite').texture = load('res://Carne.png')
+			enemy.global_position = global_position
+		yield(Timergen.createtime(self,1.0), 'timeout')
+		get_parent().queue_free()
+	pass # Replace with function body.

+ 1 - 0
project.godot

@@ -80,6 +80,7 @@ config/icon="res://icon.png"
 [autoload]
 
 MobileAds="*res://addons/admob/src/singletons/MobileAds.gd"
+Timergen="*res://timergen.gd"
 
 [display]
 

+ 2 - 2
spawner.gd

@@ -1,11 +1,11 @@
 extends Node2D
 
-var enemy_ = preload('res://enemy.tscn')
+export(PackedScene) var enemy_ = preload('res://enemy.tscn')
 export var spawnspeed = 5.0
 
 func _ready():
 	while true:
-		yield(get_tree().create_timer(spawnspeed),'timeout')
+		yield(Timergen.createtime(self,spawnspeed),'timeout')
 		_spawn()
 		if get_tree().paused: break
 

+ 19 - 0
timergen.gd

@@ -0,0 +1,19 @@
+extends Node
+var time 
+var bettertimer = preload('res://bettertime.tscn')
+var count = 0
+var timerslist = []
+
+func createtime(node,arg = 0.1, process = 0):
+	time = bettertimer.instance()
+	time.wait_time = arg
+	time.pause_mode = process
+	time.name = 'timernew'
+	timerslist.append(time)
+	node.call_deferred('add_child',time)
+	return time
+
+
+func timernuke():
+	for i in timerslist:
+		if i != null: i.queue_free()