From f40b58508e910cbf99ebf8163c91220ee9cba1aa Mon Sep 17 00:00:00 2001 From: Mark Date: Fri, 24 Feb 2023 22:17:45 -0800 Subject: [PATCH] Added fruit status --- celeste/celeste_ai/celeste.py | 4 ++++ celeste/resources/carts/hackcel.p8 | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/celeste/celeste_ai/celeste.py b/celeste/celeste_ai/celeste.py index 164e56f..72ce277 100755 --- a/celeste/celeste_ai/celeste.py +++ b/celeste/celeste_ai/celeste.py @@ -28,6 +28,9 @@ class CelesteState(NamedTuple): # Number of deaths since game start deaths: int + # If an index is true, we got a strawberry on that stage. + berries: list[bool] + # Distance to next point dist: float @@ -223,6 +226,7 @@ class Celeste: xvel = float(self._internal_state["vx"]), yvel = float(self._internal_state["vy"]), deaths = int(self._internal_state["dc"]), + berries = [x == "t" for x in self._internal_state["fr"][1:]], dist = self._dist, next_point = self._next_checkpoint_idx, diff --git a/celeste/resources/carts/hackcel.p8 b/celeste/resources/carts/hackcel.p8 index 8f88699..fc55b07 100755 --- a/celeste/resources/carts/hackcel.p8 +++ b/celeste/resources/carts/hackcel.p8 @@ -1275,11 +1275,25 @@ function _update() hack_has_sent_first_message = true out_string = "dc:" .. tostr(deaths) .. ";" + -- Dash status if hack_can_dash then out_string = out_string .. "ds:t;" else out_string = out_string .. "ds:f;" end + + + -- Fruit status + out_string = out_string .. "fr:" + for i = 0,29 do + if got_fruit[i] then + out_string = out_string .. "t" + else + out_string = out_string .. "f" + end + end + out_string = out_string .. ";" + for k, v in pairs(hack_player_state) do out_string = out_string .. k ..":" .. v .. ";"