home · contact · privacy
Plugin: Add fertilizer tool, and TOOL_0 variable.
[plomrogue] / plugins / server / PleaseTheIslandGod.py
index 799efeba51f50af5c76cdf3508414f15c4e44765..f513300209122f240f762cfd829ca45ff8665524 100644 (file)
@@ -303,6 +303,11 @@ def actor_use(t):
                 log("With your " + world_db["ThingTypes"][type]["TT_NAME"]
                     + " you build a wooden barrier from your "
                     + world_db["ThingTypes"][type_material]["TT_NAME"] + ".")
+        elif world_db["ThingTypes"][type]["TT_TOOL"] == "fertilizer":
+            pos = t["T_POSY"] * world_db["MAP_LENGTH"] + t["T_POSX"]
+            if world_db["MAP"][pos] == ord("."):
+                log("You create SOIL.")
+                world_db["MAP"][pos] = ord(":")
         elif world_db["ThingTypes"][type]["TT_TOOL"] == "food":
             t["T_CARRIES"].remove(id)
             del world_db["Things"][id]
@@ -619,6 +624,11 @@ def play_use(str_arg):
                             + world_db["ThingTypes"][type]["TT_NAME"]
                             + " without some wood in your inventory.")
                         return
+                elif world_db["ThingTypes"][type]["TT_TOOL"] == "fertilizer":
+                    pos = t["T_POSY"] * world_db["MAP_LENGTH"] + t["T_POSX"]
+                    if not world_db["MAP"][pos] == ord("."):
+                        log("Can only make soil out of NON-SOIL earth.")
+                        return
                 elif type != world_db["SLIPPERS"] and not \
                         world_db["ThingTypes"][type]["TT_TOOL"] == "food":
                     log("You CAN'T consume this thing.")
@@ -628,7 +638,7 @@ def play_use(str_arg):
             else:
                 print("Illegal inventory index.")
 
-def specialtypesetter(name):  # #
+def specialtypesetter(name):
     def helper(str_int):
         val = integer_test(str_int, 0)
         if None != val:
@@ -693,6 +703,16 @@ def write_metamap_B():
             metamapB[pos] = ord(name[0])
     return write_map(metamapB, length)
 
+def calc_effort(thing_action, thing):
+    from math import sqrt
+    effort = thing_action["TA_EFFORT"]
+    if thing_action["TA_NAME"] == "move":
+        typ = thing["T_TYPE"]
+        max_hp = (world_db["ThingTypes"][typ]["TT_LIFEPOINTS"])
+        effort = int(effort / sqrt(max_hp))
+        effort = 1 if effort == 0 else effort
+    return effort
+
 strong_write(io_db["file_out"], "PLUGIN PleaseTheIslandGod\n")
 
 if not "GOD_FAVOR" in world_db:
@@ -707,6 +727,8 @@ if not "PLANT_1" in world_db:
     world_db["PLANT_1"] = 0
 if not "TOOL_0" in world_db:
     world_db["TOOL_0"] = 0
+if not "TOOL_1" in world_db:
+    world_db["TOOL_1"] = 0
 if not "LUMBER" in world_db:
     world_db["LUMBER"] = 0
 if not "EMPATHY" in world_db:
@@ -741,6 +763,7 @@ commands_db["WORLD_ACTIVE"] = (1, False, command_worldactive)
 commands_db["FAVOR_STAGE"] = (1, False, setter(None, "FAVOR_STAGE", 0, 1))
 commands_db["SLIPPERS"] = (1, False, specialtypesetter("SLIPPERS"))
 commands_db["TOOL_0"] = (1, False, specialtypesetter("TOOL_0"))
+commands_db["TOOL_1"] = (1, False, specialtypesetter("TOOL_1"))
 commands_db["PLANT_0"] = (1, False, specialtypesetter("PLANT_0"))
 commands_db["PLANT_1"] = (1, False, specialtypesetter("PLANT_1"))
 commands_db["LUMBER"] = (1, False, specialtypesetter("LUMBER"))
@@ -752,4 +775,5 @@ import server.config.misc
 server.config.misc.make_map_func = make_map
 server.config.misc.thingproliferation_func = thingproliferation
 server.config.misc.make_world = make_world
-server.config.decrement_lifepoints_func = decrement_lifepoints
+server.config.misc.decrement_lifepoints_func = decrement_lifepoints
+server.config.misc.calc_effort_func = calc_effort