-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathbaseClass.py
More file actions
127 lines (111 loc) · 4.08 KB
/
baseClass.py
File metadata and controls
127 lines (111 loc) · 4.08 KB
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# Brianna Melius, Zachary Golik, Tyler Kapusniak, Sam Coon
# Character/Monster base class
#
# The base class to the monsters and characters
from random import randint
class Base(object):
""" The base class for any character/monster. """
def __init__(self, name, xp, rangedAtk, rangedDieNum, rangedDieSide,
rangedMod, meleeAtk, meleeDieNum, meleeDieSide, meleeMod,
strength, dexterity, constitution, intelligence, wisdom,
charisma, size, CMB, CMD, armorClass, fort, ref,
will, speed, hp, cr, sprite, weapon, rollOne,
rollTwo, die, damage, damageCrit):
self.name = name
self.xp = xp
self.rangedAtk = rangedAtk
self.rangedDieNum = rangedDieNum
self.rangedDieSide = rangedDieSide
self.rangedMod = rangedMod
self.meleeAtk = meleeAtk
self.meleeDieNum = meleeDieNum
self.meleeDieSide = meleeDieSide
self.meleeMod = meleeMod
self.str = strength
self.dex = dexterity
self.con = constitution
self.intelligence = intelligence
self.wis = wisdom
self.cha = charisma
self.size = size
self.CMB = CMB
self.CMD = CMD
self.armorClass = armorClass
self.fort = fort
self.ref = ref
self.will = will
self.speed = speed
self.hp = hp
self.cr = cr
self.sprite = sprite
self.inventory = []
self.weapon = weapon
self.carryCap = self.str * 4
self.rollOne = rollOne
self.rollTwo = rollTwo
self.die = die
self.damage = damage
self.damageCrit = damageCrit
self.initiative = 0
self.attackRoll = 0
self.living = True
# Attack Method
def attack(self):
if self.attackRoll == 1:
return False
elif 1 < self.roll < 20:
# numDie = number of dice rolled
# typeDie = the number of sides each die has.
damage = 0
for i in range(self.weapon.numDie):
hitRoll = (randint(1, self.weapon.typeDie) + dexMod + size)
damage += hitRoll
damage = rollOne + ranged
if self.weapon.rang <= 10:
damage1 += (self.str // 5)
return damage, "melee"
elif self.weapon.rang >= 11:
damage2 += (self.dex // 5)
return damage, "ranged"
# crit
elif self.initiative == 20:
# numDie = number of dice rolled
# typeDie = the number of sides each die has.
damage1 = 0
damage2 = 0
for i in range(self.weapon.numDie):
hitRoll1 = (randint(1, self.weapon.typeDie) + dexMod + size)
damage1 += attackRoll
hitRoll2 = (randint(1, self.weapon.typeDie) + dexMod + size)
damage2 += attackRoll
if self.weapon.rang <= 10:
damage1 += (self.str // 5)
return damage1, damage2, "crit melee"
elif self.weapon.rang >= 11:
damage2 += (self.dex // 5)
return damage1, damage2, "crit ranged"
def roll_initiative(self):
"""generates a random number between 1-20 + dex"""
self.initiative = randint(1, 20) + self.dex
def roll_attackDie(self):
"generates a random number between 1-20"
self.attackRoll = randint(1, 20)
def get_attackRoll(self):
return self.attackRoll
def get_initiative(self):
"""returns the number of times attack should be run"""
return self.initiative
def rep_hp(self, health):
self.hp = health
# make sure that we import health from character/monster class.
def get_hp(self):
"""returns objects health"""
return self.hp
def dying(self):
# checks if character is dead
if self.hp <= -5:
self.living = False
return self.living
else:
self.living = True
return self.living