blob: 4355e318444807910af3eb49e67ec6d8a3f4c8d4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
extends Node
const Items = preload("res://scripts/items.gd")
const Events = preload("res://scripts/events.gd")
var items
var events
var stage
var materials
var age
var event
func _init(stage, materials):
self.items = Items.new()
self.events = Events.new()
self.stage = stage
self.materials = materials
self.age = 0
func evolve():
print("life evolve", stage, materials)
var r = randf()
if r > 0.95:
print("destroy")
self.stage = 0
# destroy life
elif r > 0.7:
print("choice")
self.event = self.events.get_rand_event(self.stage)
var popup = get_tree().get_root().get_node("Game/HUD/popup")
popup.set_text(event["text"])
popup.set_options(event["options"])
popup.set_life(self)
popup.popup_centered()
# choice event
elif r > 0.5:
print("up")
self.stage = int(min(self.stage + 1, 6))
# move up
elif r > 0.45:
print("down")
self.stage = int(max(self.stage - 1, 0))
# move down
else:
print("none")
# none
self.age += 1
func choice(i):
if i == null:
return
var r = randf()
var result
if r > 0.4:
result = "correct"
self.stage = int(min(self.stage + 1, 6))
else:
result = "incorrect"
self.stage = int(max(self.stage - 1, 0))
get_tree().get_root().get_node("Game/HUD").display_message(self.event[result][i])
get_tree().get_root().get_node("Game/Incubator").display_life()
print(result)
|