/
Weapon.py
51 lines (38 loc) · 1.24 KB
/
Weapon.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#Weapon.py
import Item
import Utils
import Effect
def default_brand(damage, target):
return (damage, "")
def fire_brand(damage, target):
return (damage * 3, "burn")
def cold_brand(damage, target):
return (damage * 3, "freeze")
def acid_brand(damage, target):
return (damage * 3, "corrode")
def elec_brand(damage, target):
return (damage * 3, "zap")
def slay_dragon(damage, target):
return (damage * 3, "smite")
def kill_dragon(damage, target):
return (damage * 5, "furiously smite")
def time_brand(damage, target):
if(Util.one_in(5)):
target.add_timed_effect(Effect.SLOW, 10, Util.roll_dice("5d5+5"))
return (damage * Util.roll_dice("1d5"))
def get_best_brand(target):
return default_brand
class Weapon(Item.EquipableItem):
def __init__(self, id):
super(Weapon, self).__init__(id)
self._damage_dice = "1d2"
self._to_hit = 0
self._to_dmg = 0
self._to_armor = 0
self._brands = []
def calc_damage(self, target):
damage = Utils.roll_dice(self._damage_dice)
brand = default_brand
if(len(self._brands) > 0):
brand = get_best_brand(target) #target is a LivingThing...
return brand(damage, target)