Alles werkt. ship it

This commit is contained in:
Mark Hoekveen
2019-10-26 12:34:02 +02:00
parent c3c9f582f3
commit 4456641473
3 changed files with 96 additions and 9 deletions
+57
View File
@@ -1,8 +1,65 @@
extends Node extends Node
var naampje = "je moeder" var naampje = "je moeder"
var dna = []
# const DNA_SIZE = 173;
const TRAITS = {
"Arm": [1, 4, 5],
"Leg": [2, 1, 2],
"Head": [1, 2, 2, 2, 1],
"Skin": [3, 3, 3, 3],
"Penis": [2]
}
const TIERS_STRING = "12 3 1 23 12 3 4 51 2 3 4 1 "
const TRAIT_STRING = "Arm Leg Head Skin Penis"
func initialize():
# Make one boolean per thing we need
for i in range(TRAITS.size()):
for j in range(TRAITS.values()[i].size()):
for x in range(TRAITS.values()[i][j]):
if randf() > 0.1:
dna.append(false)
else:
dna.append(true)
func sum(a):
var sum = 0
for i in range(a.size()):
sum += a[i]
return sum
func describe():
var TRAIT_DESC = "Has a %s trait of tier %d."
var LATENT_DESC = " latent tier %d trait."
var d = 0
var found_trait = false
for i in range(TRAITS.size()):
found_trait = false
for j in range(TRAITS.values()[i].size()):
for x in range(TRAITS.values()[i][j]):
if !found_trait && dna[d]:
print(TRAIT_DESC % [TRAITS.keys()[i], j+1])
found_trait = true
elif found_trait && dna[d]:
print(LATENT_DESC % [j+1])
d += 1
var strand = ""
for i in range(dna.size()):
if dna[i]:
strand += "1"
else:
strand += "0"
print(strand)
print(TIERS_STRING)
print(TRAIT_STRING)
func _ready(): func _ready():
print(naampje) print(naampje)
initialize()
print(dna.size())
#Register the selection event
get_node("Area").connect('input_event', get_parent(), 'select_a_bitch', [get_index()]) get_node("Area").connect('input_event', get_parent(), 'select_a_bitch', [get_index()])
pass pass
+32 -9
View File
@@ -2,33 +2,56 @@ extends Node
export (PackedScene) var Creature export (PackedScene) var Creature
var selected = [] var selected = []
var rng = RandomNumberGenerator.new()
func _ready(): func _ready():
rng.randomize()
pass pass
func spawn_a_bitch(): func spawn_a_bitch():
# Maak een bitch
var c = Creature.instance() var c = Creature.instance()
add_child(c) add_child(c)
# Geef de bitch een random positie en rotatie # Geef de bitch een random positie en rotatie
c.rotate_y(rand_range(-5, 5)) c.rotate_y(rand_range(-5, 5))
c.transform = Transform(c.transform.basis, Vector3(rand_range(-7, 7), 0, rand_range(-5, 5))) c.transform = Transform(c.transform.basis, Vector3(rand_range(-7, 7), 0, rand_range(-5, 5)))
# print_tree ( ) return c
func kill_a_bitch(): func kill_a_bitch():
var c = get_child(get_child_count()-1) var c = get_child(get_child_count()-1)
if c: if c:
c.queue_free() c.queue_free()
#remove_child(c) #remove_child(c)
func combine_a_bitch():
if selected.size() == 2:
var new_dna = []
for i in range(selected[0].dna.size()):
if rng.randf() > 0.5:
new_dna.append(selected[0].dna[i])
else:
new_dna.append(selected[1].dna[i])
var new_child = spawn_a_bitch()
new_child.dna = new_dna
deselect_all()
select(new_child)
new_child.describe()
func deselect_all():
for i in range(selected.size()):
selected[i].get_node("SelectionIndicator").visible = false;
selected = []
func select(creature):
if selected.has(creature):
creature.get_node("SelectionIndicator").visible = false;
selected.erase(creature)
else:
selected.append(creature)
creature.get_node("SelectionIndicator").visible = true;
func select_a_bitch(camera, event, click_position, click_normal, index, creature_id): func select_a_bitch(camera, event, click_position, click_normal, index, creature_id):
if event.is_action_pressed("select_creature"): if event.is_action_pressed("select_creature"):
var kindeke = get_child(creature_id) var kindeke = get_child(creature_id)
if selected.has(creature_id): select(kindeke)
kindeke.get_node("SelectionIndicator").visible = false;
selected.erase(creature_id)
else:
selected.append(creature_id)
kindeke.get_node("SelectionIndicator").visible = true;
print(creature_id) print(creature_id)
+7
View File
@@ -67,6 +67,12 @@ margin_bottom = 69.0975
shortcut_in_tooltip = false shortcut_in_tooltip = false
text = "Kill a bitch" text = "Kill a bitch"
[node name="Button" type="Button" parent="GUI/Control"]
margin_left = 500.0
margin_top = 50.0
margin_right = 73.0
text = "Combine!"
[node name="Log" type="Label" parent="GUI"] [node name="Log" type="Label" parent="GUI"]
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_bottom = -586.0 margin_bottom = -586.0
@@ -83,3 +89,4 @@ Creature = ExtResource( 2 )
environment = SubResource( 3 ) environment = SubResource( 3 )
[connection signal="pressed" from="GUI/Control/Spawn" to="CreatureLab" method="spawn_a_bitch"] [connection signal="pressed" from="GUI/Control/Spawn" to="CreatureLab" method="spawn_a_bitch"]
[connection signal="pressed" from="GUI/Control/Kill" to="CreatureLab" method="kill_a_bitch"] [connection signal="pressed" from="GUI/Control/Kill" to="CreatureLab" method="kill_a_bitch"]
[connection signal="pressed" from="GUI/Control/Button" to="CreatureLab" method="combine_a_bitch"]