예제 #1
0
    def cast_fireball(self):
        self.reveal()
        roll=base.D6.roll()
        base.put("Carl summons a mass of fire!")
        if self.action_points > 0:
            if not self.aggroed:
                self.select_aggro()

            if self.aggro.alive:
                self.attack(self.aggro,self.power)
                self.aggro.statuses.append(p_status.Burn(math.ceil(roll/2),self.power/8*roll))
            else:
                self.select_aggro()
                self.attack(self.aggro,self.power)
                self.aggro.statuses.append(p_status.Burn(math.ceil(roll/2),self.power/8*roll))
예제 #2
0
 def breathefire(self):
     self.reveal()
     base.put('Zearth breathes a sea of fire at his enemies!')
     for player in self.owner.party.inventory:
         roll=base.D20.roll()
         if roll<12:
             player.take_damage(self,self.power/3)
             player.statuses.append(p_status.Burn(math.ceil(self.level/4),self.power*(self.level/2.0)))
         else:
             base.put('%s has dodged the flames!' %player.name)
예제 #3
0
	def do_turn(self,target,damage):
		chance = base.D40.roll()
		if chance > 39:
			base.put('Heavenly Fire leaps from the body of your enemy, striking all enemies in the room')
			# base.put('Hey if there is an error its on 354 of item_modification.py')
			for a in self.owner.owner.party.current_dungeon.active_room.things:
				if isinstance(a,Monster):
					a.take_damage(self.owner,20*self.owner.level)
					chance2=base.D20.roll()
					if chance2>14:
						a.statuses.append(s.Burn(self.owner.level,self.owner.level*8))
예제 #4
0
    def cast_cosmicBlast(self):
        num=0
        for a in self.owner.things:
            if isinstance(a,m.Monster):
                a.conceal()
                num+=1
        self.conceal()
        base.put("The rooms is plunged into darkness as a all light is gathered into a ball")
        base.put("Carl seems to have disappeared along with all other monsters!")
        if self.action_points > 0:
            if not self.aggroed:
                self.select_aggro()

            if self.aggro.alive:
                self.attack(self.aggro,self.power*(2+num))
                self.aggro.statuses.append(p_status.Stun(base.D3.roll()))
                self.aggro.statuses.append(p_status.Burn(base.D3.roll(),num*(self.power/5)))
            else:
                self.select_aggro()
                self.attack(self.aggro,self.power*(2+num))
                self.aggro.statuses.append(p_status.Burn(base.D3.roll(),num*(self.power/5)))
                self.aggro.statuses.append(p_status.Stun(base.D3.roll()))
예제 #5
0
	def do_turn(self,target,damage):
		chance=base.D100.roll()
		if chance >99:
			base.put('The Arch Powers of the World infuse your body!')
			base.put('Mortal Blast!')
			target.statuses.append(s.Burn(self.owner.level,100))
			target.statuses.append(s.Poison(self.owner.level,120))
			target.statuses.append(s.Bleeding(self.owner.level,1000))
			target.statuses.append(s.Maim(self.owner.level))
			target.statuses.append(s.Stun(self.owner.level/2))
			target.statuses.append(s.Sleep())
			target.statuses.append(s.Blind(self.owner.level*2))
			for a in self.owner.owner.party.inventory:
				a.statuses.append(s.Healing())
			damage=0
 def do_turn(self, target):
     chance = base.D20.roll()
     if chance > 18:
         target.statuses.append(s.Stun(base.D2.roll()))
         base.put('[STATUS] ' + target.name + " has been stunned by " +
                  self.owner.name)
     chance2 = base.D20.roll()
     if chance2 > 19:
         target.statuses.append(
             s.Poison(base.D4.roll(),
                      base.D6.roll() * self.level))
         base.put('[STATUS] ' + target.name + " has been poisoned by " +
                  self.owner.name)
     chance3 = base.D20.roll()
     if chance3 > 18:
         target.statuses.append(
             s.Burn(base.D6.roll(), self.level * base.D2.roll()))
         base.put('[STATUS] ' + target.name + " has been burned by " +
                  self.owner.name)