got requirements.yamls and YAML->SQL working

bradl/monsters-adult-gold-dragon
James Miller 2019-11-14 22:42:38 -06:00
parent 92d02ca1db
commit df2bdacc56
2 changed files with 98 additions and 4 deletions

View File

@ -72,10 +72,38 @@ def main():
do_actions(data, conn)
# move on to spells
# TODO do spells once data is proofread
with open('spells.yaml') as yl:
data = yaml.full_load(yl)
do_spells(data, conn)
# move on to requirements
with open('requirements.yaml') as yl:
data = yaml.full_load(yl)
do_requirements(data, conn)
def do_requirements(data, conn):
table = """
CREATE TABLE requirement (
requirement_id INTEGER PRIMARY KEY,
descr TEXT NOT NULL UNIQUE
);
"""
c = conn.cursor()
c.execute(table)
inp_data = []
for i in data['requirement']:
inp_data.append((i, ))
stmt = "INSERT INTO requirement (descr) VALUES (?)"
try:
conn.executemany(stmt, inp_data)
except Exception as e:
print("Error creating requirement: {}".format(e))
else:
conn.commit()
def do_spells(data, conn):
# load the helper info
@ -83,6 +111,7 @@ def do_spells(data, conn):
do_spellcomponent(data, conn)
do_spelltradition(data, conn)
do_spellschool(data, conn)
# TODO once spells data complete, write a do_spellsthemselves(data, conn) function
def do_spelltype(data, conn):
@ -202,10 +231,8 @@ VALUES (?,?,
"""
# print('executing on name:{}'.format(i['name']))
try:
conn.execute(
stmt,
(i['name'], i['descr'], srcentrydata[0][0],
srcentrydata[0][1], srcentrydata[0][2]))
conn.execute(stmt, (i['name'], i['descr'], srcentrydata[0][0],
srcentrydata[0][1], srcentrydata[0][2]))
except Exception as e:
print("Error creating spellschool: {}".format(e))
else:

View File

@ -0,0 +1,67 @@
requirement:
- You are holding an infused alchemical bomb you crafted, with a level at least 3 lower than your advanced alchemy level.
- "You haven't used this ability since you last Raged."
- You are Medium or smaller.
- You have a foe grabbed.
- Your last action was a successful Strike.
- Your last action was a successful Strike, and either you have a hand free or your Strike used a grapple weapon.
- You are unarmored or wearing light armor.
- "You're under the effect of Come and Get Me."
- "You haven't acted yet on your turn."
- You are wielding a shield.
# Fiendsbane Oath may be errated to a requirement. Marking it incase to find easier.
- Fiendsbane Oath'
# Shining Oath may be errated to a requirement. Marking it incase to find easier.
- Shining Oath
- exalt and Vengeful Oath
- Dragonslayer Oath
- You have a banishment spell prepared.
- You have at least 1 available Focus Point.
- You are wielding two melee weapons, each in a different hand.
- You are wielding a ranged weapon.
- You have one hand free, and your target is within reach of that hand.
- You are wielding a two-handed melee weapon.
- You are wielding only a single one-handed melee weapon and have your other hand or hands free.
- You are wielding a melee weapon.
- You are wielding a ranged weapon with reload 0.
- You are wielding a one-handed melee weapon and have a free hand.
- You are flanked by at least two enemies.
- You are wielding two melee weapons, one in each hand.
- You are wielding a single one-handed melee weapon and have your other hand or hands free.
- You are wielding a melee weapon that deals piercing damage.
- A frightened creature is in your melee reach.
- You are benefiting from Dueling Parry.
- You are wielding a two-handed melee weapon and your target is within your reach.
- You have a shield raised.
- You are wielding a melee weapon in two hands.
- You are adjacent to an enemy.
- You meet the requirements to use an action with the press trait.
- You are wielding two weapons, each in a different hand.
- You are wielding a ranged weapon with the volley trait and reload 0.
- You are unarmored.
- You are unarmored and touching the ground.
- "You're aware of the attack, are not flat-footed against it, and have a hand free."
- You are in Crrane Stance.
- You are in Dragon Stance.
- You are in Mountain Stance.
- You are in Tiger Stance.
- You have a creature grabbed or restrained.
- You are in Wolf Stance.
- You are in Ironblood Stance.
- You are in Tangled Forest Stance.
- You are in Wild Winds Stance.
- This is the first action of your turn.
- You are not armored or fatigued.
- You are benefiting from Twin Parry.
- You are wielding a loaded ranged weapon with reload 1 or more, and you have not reloaded your weapon since your last turn.
- You are not encumbered.
- You are wielding a piercing or slashing weapon and have a free hand.
- You have a free hand.
- Your last action was a melee Strike that dealt sneak attack damage to a flat-footed target.
- You are currently affected by a mental effect that you gained by failing, but not critically failing, a saving throw.
- You are adjacent to a floor or vertical wall.
- When you make your daily preparations, you must specify a trigger for this reaction using the same restrictions as the triggers for the Ready action. You also choose a single spell from the arcane, divine, occult, or primal list of 4th level or lower. The spell cant have a cost, nor can its casting time be more than 10 minutes. The spell must be able to target a single creature, and you must be a valid target for it.
- You have Perfect Distraction ready to use.
- You have an unexpended spell slot you could use to cast the triggered spell.
- Your most recent action was to cast a non-cantrip spell.
- The last action you used was Drain Bonded Item.