Ejemplo n.º 1
0
 def __init__(self):
     monster.Monster.__init__(
         self,
         "drunken trainee",
         60,
         loot.Loot("the drunken trainee", 5, 30,
                   [[item.Nothing(), 0.4],
                    [
                        item.UsableItem(
                            "cheap whiskey", "it's nearly empty", 5, 19,
                            lambda target: target.addEffect(
                                effect.DamageOverTime(
                                    "intoxication", 3, 1, 2, self))), 0.6
                    ]]),
         [
             # [name, cooldown, caster (always self), cast logic (takes ablty, which means ability but can't be confused with the module, and target)], probability
             [
                 ability.Ability(
                     "charge", 0, lambda ablty, caster, target: ability.
                     damage(ablty, caster, target, 5, 9)), 0.5
             ],
             [
                 ability.Ability(
                     "stumble", 0,
                     lambda ablty, caster, target: self.stumble()), 0.3
             ],
             [
                 ability.Ability(
                     "vomit", 4,
                     lambda ablty, caster, target: target.addEffect(
                         effect.DamageOverTime("intoxicated vomit", 2, 3, 5,
                                               self))), 0.2
             ]
         ])
Ejemplo n.º 2
0
 def __init__(self):
     monster.Monster.__init__(
         self,
         "sorcerer outcast",
         50,
         loot.Loot("the sorcerer outcast", 8, 80, [
             [item.Nothing(), 0.4],
             [
                 item.UsableItem(
                     "mysterious green brew",
                     "it could be poison, it could be eternal life, it could be stool softener",
                     9, 49, lambda target: target.addEffect(
                         effect.SpiritBuff("heightened spirits", 20, 2))),
                 0.2
             ],
             [
                 item.Item(
                     "cryptic spellbook",
                     "the writing looks hasty and is in an elvish tongue",
                     30, 99), 0.2
             ],
             [
                 gear.Helmet(
                     "pointy black hat",
                     "several patches mottle the hat, including a long seam directly above the brim",
                     sellCost=19,
                     buyCost=49,
                     stats={"criticalChance": 0.05}), 0.2
             ]
         ]),
         [
             # [name, cooldown, caster (always self), cast logic (takes ablty, which means ability but can't be confused with the module, and target)], probability
             [
                 ability.Ability(
                     "frostbolt", 0, lambda ablty, caster, target: ability.
                     damage(ablty, caster, target, 8, 14)), 0.5
             ],
             [
                 ability.Ability(
                     "frigid wind", 2,
                     lambda ablty, caster, target: target.addEffect(
                         effect.StrengthBuff("frigid wind", 2, -0.5))), 0.3
             ],
             [
                 ability.Ability(
                     "icy shield", 4, lambda ablty, caster, target: caster.
                     addEffect(effect.ArmorBuff("icy shield", 3, 1))), 0.2
             ]
         ],
         armor=4)
Ejemplo n.º 3
0
 def __init__(self):
     monster.Monster.__init__(
         self,
         "doom panda",
         500,
         loot.Loot(
             "the doom panda", 260, 1, [
                 [
                     item.UsableItem(
                         "big black potion",
                         "this is undoubtedly some bad stuff", 1, 2,
                         lambda target: target.addEffect(
                             effect.StrengthBuff("strength of a doom panda",
                                                 8, 30))), 0.5
                 ],
                 [
                     gear.Weapon("The Black Scythe",
                                 "the sword of the doom panda",
                                 sellCost=1,
                                 buyCost=2,
                                 stats={
                                     "strength": 10,
                                     "criticalChance": 0.1
                                 }), 0.5
                 ]
             ]),
         [
             # [name, cooldown, caster (always self), cast logic (takes ablty, which means ability but can't be confused with the module, and target)], probability
             [
                 ability.Ability(
                     "cuddle", 0, lambda ablty, caster, target: ability.
                     heal(ablty, caster, target, 1, 5)), 0.9
             ],
             [
                 ability.Ability(
                     "DOOOOOOOOOOM", 6, lambda ablty, caster, target:
                     ability.damage(ablty, caster, target, 80, 100)), 0.1
             ],
         ],
         armor=16,
         criticalChance=0)
Ejemplo n.º 4
0
    def debug(self):
        #################### W # A # R # N # I # N # G ####################
        LJN = gear.Weapon("Laker-Justin Nunchucks",
                          "You can probably guess the words on each nunchuck",
                          sellCost=1000,
                          buyCost=1001,
                          stats={
                              "strength": 1000000,
                              "criticalChance": 1,
                              "criticalStrike": 15,
                              "armor": 1000
                          })

        def addExp(caster, amount):
            caster.experience += amount

        expPotions = item.UsableItem("Experience Potion",
                                     "The devs shouldn't have added this one",
                                     1000, 1001,
                                     lambda caster: addExp(caster, 2000), 99)
        self.inventory.addItem(LJN)
        self.inventory.addItem(expPotions)
        self.inventory.addGold(999999)
Ejemplo n.º 5
0
 [
     quest.Quest(
         "Mad Coiner",
         "First name's Old and last name's Hermit. Why, adventurer, would you care to participate with me in a game of wits?\n\nScavenge around until you've found 10 gold, then deliver it to me and I shall give you 20 gold. What a deal for you, friend. Do be wary of the wolves that wander in these parts.",
         "You have the gold yet? I'm no mad coiner, I'll certainly give you 20 gold back.",
         "Ah, here we have the coins.\n\nOh, you really thought I'd give you any gold back? Ha! I'm a hermit, we don't live by an honor code.\n\nStop whining. Look, because of my good morals, I'll leave you with this rock I found. How's that?",
         lambda player: player.inventory.removeGold(10),
         loot.Loot(
             "Old Hermit",
             gold=0,
             experience=150,
             items=[[
                 item.UsableItem(
                     "jagged rock",
                     "what would happen if you smash it on yourself?",
                     sellCost=1,
                     buyCost=5,
                     use=lambda target: target.addEffect(
                         effect.DamageOverTime("smashed", 6, 1, 2,
                                               globals.get_player()))), 1
             ]]), lambda player: True),
     quest.Quest(
         "To the Brink and Back",
         "I'm not strange. I'm normal, but everyone thinks I'm strange because they're crackpots.\n\nSometimes I stand near the skeleton cave in the Silent Forest just for the thrill, you know? Evil reanimated bones could kill you at any time -- that kind of excitement.\n\nWhy don't you go try it? Come back here severely injured, under 20 health. I'll brew something up for you to drink afterward while you're at it.",
         "You're not nearly hurt enough! Go and break a leg. Literally. Get under 20 health.",
         "Haha! The great adventurer returns to his hermit master at the lips of death, ready to return to life. That's how it's done.\n\nThe other adventurer who came down last week never returned -- his name was Erikna if I recall -- and I found his bones outside the skeleton cave in the Silent Forest eaten clean. Who knows if he's been reanimated yet?\n\nOh, right. You should drink this. It'll make you feel better.",
         lambda player: player.health < 20,
         loot.Loot(
             "Old Hermit",
             gold=0,
             experience=200,
             items=[