summaryrefslogtreecommitdiff
path: root/src/controllers/fish.moon
diff options
context:
space:
mode:
authorAlexander M Pickering <alex@cogarr.net>2025-01-26 14:31:52 -0600
committerAlexander M Pickering <alex@cogarr.net>2025-01-26 14:31:52 -0600
commitc39ff632b46c179709101c5b50a061ebd723689f (patch)
tree23060311477b996cd11c50851e7dfb889d339346 /src/controllers/fish.moon
parentc1030d5ddbf34b1b19fa7fd169f3cf5a7b7f98f3 (diff)
downloadggj25-c39ff632b46c179709101c5b50a061ebd723689f.tar.gz
ggj25-c39ff632b46c179709101c5b50a061ebd723689f.tar.bz2
ggj25-c39ff632b46c179709101c5b50a061ebd723689f.zip
final commit
Diffstat (limited to 'src/controllers/fish.moon')
-rw-r--r--src/controllers/fish.moon33
1 files changed, 29 insertions, 4 deletions
diff --git a/src/controllers/fish.moon b/src/controllers/fish.moon
index 1516574..3c829f3 100644
--- a/src/controllers/fish.moon
+++ b/src/controllers/fish.moon
@@ -2,12 +2,16 @@ ecs = require("ecs")
world = require("world")
controller = {}
+
+
+
class FishControllerComponent extends ecs.Component
new: () =>
print("Fish controller started")
@node = am.group!
join: (entity) =>
super(entity)
+ @ent = entity
graphic = entity\get("graphic")
assert(graphic, "Fish controller must have a graphic")
pred_component = entity\get("pred")
@@ -27,7 +31,7 @@ class FishControllerComponent extends ecs.Component
while comp.state == "swimming"
comp.state = "waiting"
start_wait = world.sync_time!
- while world.sync_time! - start_wait < 4
+ while world.sync_time! - start_wait < 8
--TODO: look for nearby hooks and get caught
coroutine.yield!
if comp.state == "waiting"
@@ -41,12 +45,33 @@ class FishControllerComponent extends ecs.Component
pick_next_location: () =>
-- Pick somewhere to swim based on where we are?
-- This can only be done on the host.
+ --TODO: spawn fish on all sides.
+ -- everything has to be floats so math.random returns a float.
if @net.properties.pos.x > 10 -- pick somewhere to the right
@net.properties.next_loc = vec2(
- math.random(10.3,12),
- math.random(-10,10)
+ math.random(11.1,15),
+ math.random(-10.1,10)
+ )
+ elseif @net.properties.pos.x < -10
+ @net.properties.next_loc = vec2(
+ math.random(-15.1,-11)
+ math.random(-10.1,10)
)
- @net.properties.next_loc_time = world.sync_time!
+ elseif @net.properties.pos.y > 10
+ @net.properties.next_loc = vec2(
+ math.random(-10.1,10)
+ math.random(11.1,15)
+ )
+ elseif @net.properties.pos.y < -10
+ @net.properties.next_loc = vec2(
+ math.random(-10.1,10)
+ math.random(-15.1,-11)
+ )
+ else
+ --If none of these apply, we're stuck on land somehow, delete ourselves
+ @entity\destroy!
+
+ @net.properties.next_loc_time = world.sync_time!
--@net.properties.next_loc = @net.properties.pos + vec2(0,1)
--@net.properties.next_loc_time = world.sync_time!
print("Picking next location, it was ", @net.properties.next_loc)