summaryrefslogtreecommitdiff
path: root/scripts/life.gd
blob: 14ca0bc6027a73b6717dff4a11e4fdd68474b70e (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.3:
    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)