def set_scroll_components(item): item.set_child(ItemType(ItemType.SCROLL)) item.set_child(PlayerAutoPickUp()) item.set_child(DataPoint(DataTypes.WEIGHT, 1)) item.set_child(GraphicChar(None, colors.CHAMPAGNE, icon.SCROLL)) set_thrown_item_hit_floor_action(item, [ MoveTriggeredEffect(), LocalMessageEffect(messenger.ITEM_HITS_THE_GROUND_LIGHT) ])
def new_ammunition(game_state): """ A composite component representing a gun ammunition item. """ ammo = Composite() set_item_components(ammo, game_state) ammo.set_child(ItemType(ItemType.AMMO)) ammo.set_child(Flag("is_ammo")) ammo.set_child(Stacker("ammo", 10, random.randrange(2, 6))) ammo.set_child( Description("Gun Bullets", "These bullets will fit in most guns.")) ammo.set_child(GraphicChar(None, colors.GRAY, icon.AMMO2)) ammo.set_child(DataPoint(DataTypes.WEIGHT, 1)) ammo.set_child(PlayerAutoPickUp()) return ammo
def new_bomb(game_state): bomb = Composite() set_item_components(bomb, game_state) bomb.set_child(ItemType(ItemType.BOMB)) bomb.set_child(PlayerAutoPickUp()) bomb.set_child(GraphicChar(None, colors.GRAY_D, icon.BOMB)) bomb.set_child(DataPoint(DataTypes.WEIGHT, 4)) bomb.set_child( Description( "Bomb", "A ball filled gunpowder, with a fuse attached." "Throwing it will cause some serious damage.")) set_thrown_item_hit_floor_action(bomb, [ ExplodeTriggeredEffect(), LocalMessageEffect(messenger.ENTITY_EXPLODES) ]) return bomb
def new_energy_sphere(game_state): """ A composite component representing a gun ammunition item. """ charge = Composite() set_item_components(charge, game_state) charge.set_child(ItemType(ItemType.ENERGY_SHPERE)) charge.set_child(Stacker("charge", 5, random.randrange(1, 3))) charge.set_child( Description("Energy Sphere", "These spheres are used to power ancient devices.")) charge.set_child( GraphicChar(None, colors.LIGHT_ORANGE, icon.BIG_CENTER_DOT)) charge.set_child(DataPoint(DataTypes.WEIGHT, 1)) charge.set_child(PlayerAutoPickUp()) set_use_item_action(CHARGE_ACTION_TAG, charge, [ action.TriggerAction("Charge Device", 90, [CHARGE_ACTION_TAG]), ChooseChargeDeviceTriggeredEffect() ]) return charge
def set_ranged_weapon_components(item): item.set_child(EquipmentType(equipment.EquipmentTypes.RANGED_WEAPON)) item.set_child(ItemType(ItemType.WEAPON)) item.set_child(ReEquipAction()) item.set_child(AddSpoofChildEquipEffect2(WeaponRangedAttacker(item)))
def set_melee_weapon_component(item): item.set_child(EquipmentType(equipment.EquipmentTypes.MELEE_WEAPON)) item.set_child(ItemType(ItemType.WEAPON)) item.set_child(DamageType(DamageTypes.PHYSICAL)) item.set_child(AddSpoofChildEquipEffect2(WeaponMeleeAttacker(item))) item.set_child(ReEquipAction())
def set_device_components(item): item.set_child(ItemType(ItemType.DEVICE)) item.set_child(PlayerAutoPickUp()) item.set_child(Charge(random.randrange(2, 7))) item.set_child(DataPoint(DataTypes.WEIGHT, 5)) return item
def set_potion_components(item): item.set_child(ItemType(ItemType.POTION)) item.set_child(PlayerAutoPickUp()) item.set_child(DataPoint(DataTypes.WEIGHT, 4))
def set_armor_components(item): item.set_child(ItemType(ItemType.ARMOR)) item.set_child(ReEquipAction()) return item
def set_amulet_components(item): item.set_child(EquipmentType(equipment.EquipmentTypes.AMULET)) item.set_child(ItemType(ItemType.JEWELLRY)) item.set_child(ReEquipAction()) item.set_child(DataPoint(DataTypes.WEIGHT, 3))
def set_ring_components(item): item.set_child(EquipmentType(equipment.EquipmentTypes.RING)) item.set_child(ItemType(ItemType.JEWELLRY)) item.set_child(ReEquipAction()) item.set_child(DataPoint(DataTypes.WEIGHT, 2))