roguev6 > item.py


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

まだうごきませぬ。そもそもメソッド名が違いまする。

#coding:utf-8
#ItemBase
#好き勝手コード:これからすり合わせする。

class Item:
  def __init__(self,name,value,weight,curse=False,field_pos=FieldPos):
    self.value = value
    self.weight = weight
    self.curse = curse
    self.effect_methods = {}
    self.name = name
    self.owner = None
    self.equiped = False
    self.field_pos = None
  def step_effect(self,victim):
    raise Exception(u'#step_effectが実装されていない')
  def use_effect(self,victim):
    raise Exception(u'#use_effectが実装されていない')
  def eat_effect(self,victim):
    raise Exception(u'#eat_effectが実装されていない')
  def equip_effect(self,victim):
    raise Exception(u'#equip_effectが実装されていない')
  def unequip_effect(self,victim):
    raise Exception(u'#unequip_effectが実装されていない')
  def throw_effect(self,victim):
    raise Exception(u'#throw_effectが実装されていない')
  def put_effect(self,victim):
    raise Exception(u'#put_effectが実装されていない')
  def weapon_effect(self,victim):
    raise Exception(u'#weapon_effectが実装されていない')
  def shield_effect(self,victim):
    raise Exception(u'#sheld_effectが実装されていない')
  def other_effect(self,key,victim):
    if key in self.effect_methods:
      self.effect_methods[key](victim)
    else:
      outlog.talklog(u'%sは%sできない!'%(self.name,key))

import system
class ItemCollection:
  def __init__(self):
    self.collection=[]
  def usableitem(self,player):
    return (item for item in self.collection if item.owner == player)
  def append(self,item):
    self.collection.append(item)