changeset 93:d9f826cdf023

tranform spell and weapon bonus
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Mon, 06 Jan 2014 00:12:24 +0100
parents 0a4ad5e48fb5
children 417dc5cd0ef9
files fujo/items.py fujo/player.py
diffstat 2 files changed, 16 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/fujo/items.py	Sun Jan 05 23:50:15 2014 +0100
+++ b/fujo/items.py	Mon Jan 06 00:12:24 2014 +0100
@@ -236,6 +236,8 @@
         super(FireSpell, self).throw(level, pos, mob, steps, direction)
         if mob:
             mob.wound(random.randint(1, 5))
+            mob.add_behavior(behaviors.Panic(10))
+
 
 @Item.register
 class TeleportSpell(Spell):
@@ -307,22 +309,25 @@
             mob.add_behavior(behaviors.Sleep(10))
             mob.label("%d" % healing, (0x22, 0xff, 0x00))
 
+
 @Item.register
-class DisarmSpell(Spell):
-    name = "Disarm spell"
+class TransformSpell(Spell):
+    name = "Transform spell"
 
     def use(self, level):
-        super(DisarmSpell, self).use(level)
+        super(TransformSpell, self).use(level)
         if level.player.weapon:
-            level.player.discard_item(level.player.weapon)
+            i = level.player.items.index(level.player.weapon)
+            level.player.equip_weapon(None)
+            level.player.items[i] = Onigiri()
             return True
         return False
 
     def throw(self, level, pos, mob, steps, direction):
-        super(DisarmSpell, self).throw(level, pos, mob, steps, direction)
+        super(TransformSpell, self).throw(level, pos, mob, steps, direction)
         if mob:
-            mob.attack = 1
-            mob.damage = 1
+            mob.add_behavior(behaviors.Hide())
+
 
 @Item.register
 class SharpenSpell(Spell):
@@ -332,6 +337,7 @@
         super(SharpenSpell, self).use(level)
         if level.player.weapon:
             level.player.weapon.bonus += random.randint(1, 4)
+            level.player.update_status()
             return True
         return False
 
@@ -381,6 +387,6 @@
 FOOD = [Onigiri, Bento, Candy]
 WEAPONS = [Broom, Staff, Sickle, Hoe, Hammer, Katana]
 SPELLS = [FireSpell, TeleportSpell, KnowledgeSpell, SoothingSpell,
-          DisarmSpell, SharpenSpell]
+          TransformSpell, SharpenSpell]
 ARMOR = [LuckyCharm, Talisman, Amulet]
 ITEMS = FOOD + WEAPONS + SPELLS + ARMOR
--- a/fujo/player.py	Sun Jan 05 23:50:15 2014 +0100
+++ b/fujo/player.py	Mon Jan 06 00:12:24 2014 +0100
@@ -49,13 +49,13 @@
     @property
     def attack(self):
         if self.weapon:
-            return self.weapon.attack
+            return self.weapon.attack + self.weapon.bonus
         return 1
 
     @property
     def damage(self):
         if self.weapon:
-            return self.weapon.damage
+            return self.weapon.damage + self.weapon.bonus
         return 1
 
     @property