Current state
This commit is contained in:
commit
0508cb4d83
6 changed files with 2005 additions and 0 deletions
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
auto/*
|
||||
daisho.epub
|
||||
daisho.html
|
||||
daisho.pdf
|
343
battle.py
Normal file
343
battle.py
Normal file
|
@ -0,0 +1,343 @@
|
|||
import math, random
|
||||
|
||||
deduct = 0
|
||||
|
||||
# attacker stats
|
||||
|
||||
attack = 10 # this can range from 0 to 255
|
||||
magic = 255 # likewise
|
||||
dmcon = 0 # set according to command
|
||||
movetype = 0 # likewise
|
||||
element = 0
|
||||
command = "cure"
|
||||
attackcheer = 0
|
||||
attackfocus = 0
|
||||
strengthplus = 0
|
||||
magicplus = 0
|
||||
piercing = False
|
||||
powerbreak = False
|
||||
celestial = False
|
||||
name = "tidus"
|
||||
hp = 9999
|
||||
maxhp = 9999
|
||||
bdl = True
|
||||
mp = 999
|
||||
maxmp = 999
|
||||
magicbooster = False
|
||||
accuracy = 3
|
||||
skillaccuracy = 98
|
||||
attackertype = "person"
|
||||
attackluck = 3
|
||||
|
||||
# defender stats
|
||||
defence = 34
|
||||
magicdefence = 1
|
||||
armour = False
|
||||
armourbreak = False
|
||||
mentalbreak = False
|
||||
defend = False
|
||||
protect = False
|
||||
shell = False
|
||||
defenceplus = 0
|
||||
mdefenceplus = 0
|
||||
defencecheer = 0
|
||||
defencefocus = 5
|
||||
evasion = 3
|
||||
defendertype = "monster"
|
||||
defenceluck = 3
|
||||
fireeffect = "normal"
|
||||
lightningeffect = "half"
|
||||
watereffect = "vuln"
|
||||
iceeffect = "absorb"
|
||||
holyeffect = "normal"
|
||||
defenderhp = 20000
|
||||
|
||||
# damage constant
|
||||
if command == "attack":
|
||||
dmcon = 16
|
||||
movetype = "physical"
|
||||
elif command == "cure":
|
||||
dmcon = 24
|
||||
movetype = "heal"
|
||||
elif command == "cura":
|
||||
dmcon = 40
|
||||
movetype = "heal"
|
||||
elif command == "curaga":
|
||||
dmcon = 80
|
||||
movetype = "heal"
|
||||
elif command == "blizzard":
|
||||
dmcon = 12
|
||||
movetype = "magic"
|
||||
element = "ice"
|
||||
elif command == "thunder":
|
||||
dmcon = 12
|
||||
movetype = "magic"
|
||||
element = "lightning"
|
||||
elif command == "water":
|
||||
dmcon = 12
|
||||
movetype = "magic"
|
||||
element = "water"
|
||||
elif command == "fire":
|
||||
dmcon = 12
|
||||
movetype = "magic"
|
||||
element = "fire"
|
||||
elif command == "fira":
|
||||
dmcon = 24
|
||||
movetype = "magic"
|
||||
element = "fire"
|
||||
elif command == "blizzara":
|
||||
dmcon = 24
|
||||
movetype = "magic"
|
||||
element = "ice"
|
||||
elif command == "thundara":
|
||||
dmcon = 24
|
||||
movetype = "magic"
|
||||
element = "lightning"
|
||||
elif command == "watera":
|
||||
dmcon = 24
|
||||
movetype = "magic"
|
||||
element = "water"
|
||||
elif command == "firaga":
|
||||
dmcon = 42
|
||||
movetype = "magic"
|
||||
element = "fire"
|
||||
elif command == "blizzaga":
|
||||
dmcon = 42
|
||||
movetype = "magic"
|
||||
element = "ice"
|
||||
elif command == "waterga":
|
||||
dmcon = 42
|
||||
movetype = "magic"
|
||||
element = "water"
|
||||
elif command == "thundaga":
|
||||
dmcon = 42
|
||||
movetype = "magic"
|
||||
element = "lightning"
|
||||
elif command == "drain":
|
||||
dmcon = 20
|
||||
movetype = "physical" # presumably?
|
||||
elif command == "osmose":
|
||||
dmcon = 10
|
||||
movetype = "magic"
|
||||
elif command == "flare":
|
||||
dmcon = 60
|
||||
movetype = "magic"
|
||||
elif command == "ultima":
|
||||
dmcon = 70
|
||||
movetype = "magic"
|
||||
elif command == "holy":
|
||||
dmcon = 100
|
||||
movetype = "magic"
|
||||
element = "holy"
|
||||
|
||||
# calculate damage
|
||||
|
||||
basedamage = math.floor((math.floor(((attack + attackcheer) ** 3) / 32) + 32) * math.floor(dmcon / 16))
|
||||
|
||||
if basedamage > 99999:
|
||||
basedamage = 99999
|
||||
|
||||
defnum = math.floor(math.floor(((math.ceil(defence - 280.4)) ** 2) / 110) + 16)
|
||||
|
||||
damage = math.floor(basedamage * defnum / 730)
|
||||
|
||||
# now do modifiers
|
||||
|
||||
if strengthplus > 0:
|
||||
damage = damage + (math.floor(damage * strengthplus / 100))
|
||||
|
||||
if armour == True:
|
||||
if armourbreak == False and piercing == False:
|
||||
damage = math.floor(damage / 3)
|
||||
|
||||
if armourbreak == True:
|
||||
defence = 0
|
||||
|
||||
if defend == True:
|
||||
damage = math.floor(damage / 2)
|
||||
|
||||
if protect == True:
|
||||
damage = math.floor(damage / 2)
|
||||
|
||||
if powerbreak == True:
|
||||
damage = math.floor(damage / 2)
|
||||
|
||||
if defenceplus > 0:
|
||||
damage = damage - (math.floor(damage * defenceplus / 100))
|
||||
|
||||
if defencecheer > 0:
|
||||
damage = math.ceil(damage * (15 - defencecheer) / 15)
|
||||
|
||||
if celestial == True:
|
||||
defence = 0
|
||||
if name == "tidus" or name == "wakka" or name == "kimahri" or name == "rikku":
|
||||
damage = math.floor(damage * ((10 + (100 * hp / maxhp)) / 110))
|
||||
elif name == "yuna" or name == "lulu":
|
||||
damage = math.floor(damage * ((10 + (100 * mp / maxmp)) / 110))
|
||||
elif name == "auron":
|
||||
damage = math.floor(damage * ((130 - (100 * hp / maxhp)) / 60))
|
||||
|
||||
# now apply the defence stat i guess?
|
||||
|
||||
finaldamage = math.floor(damage * (730 - math.floor(((defence * 51) - math.floor((defence ** 2) / 11)) / 10)) / 730)
|
||||
|
||||
if element == "fire" and fireeffect == "half":
|
||||
finaldamage = math.floor(finaldamage / 2)
|
||||
elif element == "fire" and fireeffect == "vuln":
|
||||
finaldamage = finaldamage + math.floor(finaldamage / 2)
|
||||
elif element == "fire" and fireeffect == "absorb":
|
||||
finaldamage = finaldamage * -1
|
||||
if element == "water" and watereffect == "half":
|
||||
finaldamage = math.floor(finaldamage / 2)
|
||||
elif element == "water" and watereffect == "vuln":
|
||||
finaldamage = finaldamage + math.floor(finaldamage / 2)
|
||||
elif element == "water" and watereffect == "absorb":
|
||||
finaldamage = finaldamage * -1
|
||||
if element == "lightning" and lightningeffect == "half":
|
||||
finaldamage = math.floor(finaldamage / 2)
|
||||
elif element == "lightning" and lightningeffect == "vuln":
|
||||
finaldamage = finaldamage + math.floor(finaldamage / 2)
|
||||
elif element == "lightning" and lightningeffect == "absorb":
|
||||
finaldamage = finaldamage * -1
|
||||
if element == "ice" and iceeffect == "half":
|
||||
finaldamage = math.floor(finaldamage / 2)
|
||||
elif element == "ice" and iceeffect == "vuln":
|
||||
finaldamage = finaldamage + math.floor(finaldamage / 2)
|
||||
elif element == "ice" and iceeffect == "absorb":
|
||||
finaldamage = finaldamage * -1
|
||||
if element == "holy" and holyeffect == "half":
|
||||
finaldamage = math.floor(finaldamage / 2)
|
||||
elif element == "holy" and holyeffect == "vuln":
|
||||
finaldamage = finaldamage + math.floor(finaldamage / 2)
|
||||
elif element == "holy" and holyeffect == "absorb":
|
||||
finaldamage = finaldamage * -1
|
||||
|
||||
if finaldamage > 99999:
|
||||
finaldamage = 99999
|
||||
if bdl == False and finaldamage > 9999:
|
||||
finaldamage = 9999
|
||||
if finaldamage < -99999:
|
||||
finaldamage = -99999
|
||||
if bdl == False and finaldamage < -9999:
|
||||
finaldamage = -9999
|
||||
|
||||
if movetype == "physical":
|
||||
print("Physical damage: " + str(finaldamage))
|
||||
deduct = finaldamage
|
||||
|
||||
# magic damage and healing
|
||||
|
||||
if movetype == "heal":
|
||||
magicbasedamage = dmcon * math.floor((magic + attackfocus + dmcon) / 2)
|
||||
else:
|
||||
magicbasedamage = math.floor(dmcon * (math.floor(((magic + attackfocus) ** 2) / 6) + dmcon) / 4)
|
||||
if magicbasedamage > 99999:
|
||||
magicbasedamage = 99999
|
||||
|
||||
mdefnum = math.floor(math.floor((((magicdefence - 280.4)) ** 2) / 110) + 16)
|
||||
|
||||
magicdamage = math.floor(magicbasedamage * mdefnum / 730)
|
||||
|
||||
# magic modifiers
|
||||
|
||||
if magicbooster == True:
|
||||
magicdamage = magicdamage + math.floor(magicdamage / 2)
|
||||
|
||||
if magicplus > 0:
|
||||
magicdamage = magicdamage + (math.floor(magicdamage * magicplus / 100))
|
||||
|
||||
if mentalbreak == True:
|
||||
magicdamage = math.floor(magicdamage / 2)
|
||||
magicdefence = 0
|
||||
|
||||
if shell == True:
|
||||
magicdamage = math.floor(magicdamage / 2)
|
||||
|
||||
if mdefenceplus > 0:
|
||||
magicdamage = magicdamage - (math.floor(magicdamage * mdefenceplus / 100))
|
||||
|
||||
if defencefocus > 0:
|
||||
magicdamage = math.ceil(magicdamage * (15 - defencefocus) / 15)
|
||||
|
||||
# magic defence
|
||||
|
||||
if movetype == "heal": # i assume this isn't affected by mdef
|
||||
print("HP healed: " + str(magicdamage))
|
||||
deduct = -1 * magicdamage
|
||||
else:
|
||||
finalmdamage = math.floor(magicdamage * (730 - math.floor(((magicdefence * 51) - math.floor((magicdefence ** 2) / 11)) / 10)) / 730)
|
||||
if element == "fire" and fireeffect == "half":
|
||||
finalmdamage = math.floor(finalmdamage / 2)
|
||||
elif element == "fire" and fireeffect == "vuln":
|
||||
finalmdamage = finalmdamage + math.floor(finalmdamage / 2)
|
||||
elif element == "fire" and fireeffect == "absorb":
|
||||
finalmdamage = finalmdamage * -1
|
||||
if element == "water" and watereffect == "half":
|
||||
finalmdamage = math.floor(finalmdamage / 2)
|
||||
elif element == "water" and watereffect == "vuln":
|
||||
finalmdamage = finalmdamage + math.floor(finalmdamage / 2)
|
||||
elif element == "water" and watereffect == "absorb":
|
||||
finalmdamage = finalmdamage * -1
|
||||
if element == "lightning" and lightningeffect == "half":
|
||||
finalmdamage = math.floor(finalmdamage / 2)
|
||||
elif element == "lightning" and lightningeffect == "vuln":
|
||||
finalmdamage = finalmdamage + math.floor(finalmdamage / 2)
|
||||
elif element == "lightning" and lightningeffect == "absorb":
|
||||
finalmdamage = finalmdamage * -1
|
||||
if element == "ice" and iceeffect == "half":
|
||||
finalmdamage = math.floor(finalmdamage / 2)
|
||||
elif element == "ice" and iceeffect == "vuln":
|
||||
finalmdamage = finalmdamage + math.floor(finalmdamage / 2)
|
||||
elif element == "ice" and iceeffect == "absorb":
|
||||
finalmdamage = finalmdamage * -1
|
||||
if element == "holy" and holyeffect == "half":
|
||||
finalmdamage = math.floor(finalmdamage / 2)
|
||||
elif element == "holy" and holyeffect == "vuln":
|
||||
finalmdamage = finalmdamage + math.floor(finalmdamage / 2)
|
||||
elif element == "holy" and holyeffect == "absorb":
|
||||
finalmdamage = finalmdamage * -1
|
||||
if finalmdamage > 99999:
|
||||
finalmdamage = 99999
|
||||
if bdl == False and finalmdamage > 9999:
|
||||
finalmdamage = 9999
|
||||
if finalmdamage < -99999:
|
||||
finalmdamage = -99999
|
||||
if bdl == False and finalmdamage < -9999:
|
||||
finalmdamage = -9999
|
||||
if movetype == "magic":
|
||||
print("Magic damage: " + str(finalmdamage))
|
||||
deduct = finalmdamage
|
||||
|
||||
if attackertype == "person":
|
||||
acnum = accuracy * 0.4 - evasion + 9
|
||||
if acnum <= 0:
|
||||
accent = 25
|
||||
elif acnum < 2.5: # depends on when these are rounded?
|
||||
accent = 30
|
||||
elif acnum < 4.5:
|
||||
accent = 40
|
||||
elif acnum < 5.5:
|
||||
accent = 50
|
||||
elif acnum < 6.5:
|
||||
accent = 60
|
||||
elif acnum < 7.5:
|
||||
accent = 80
|
||||
else:
|
||||
accent = 100
|
||||
elif attackertype == "monster":
|
||||
accent = skillaccuracy - evasion
|
||||
|
||||
hit = accent + attackluck - defenceluck
|
||||
|
||||
prohibit = random.randint(0,100)
|
||||
|
||||
if movetype != "heal":
|
||||
if prohibit > hit:
|
||||
print("Attack failed")
|
||||
else:
|
||||
print("Attack succeeded")
|
||||
defenderhp = defenderhp - deduct
|
||||
if defenderhp < 1:
|
||||
print("KO")
|
||||
else:
|
||||
print("Target HP: " + str(defenderhp))
|
274
counter.py
Normal file
274
counter.py
Normal file
|
@ -0,0 +1,274 @@
|
|||
import math, random
|
||||
|
||||
move = "attack"
|
||||
agility = 1
|
||||
speed = "normal"
|
||||
name = "tidus"
|
||||
ambush = False
|
||||
playertype = "person"
|
||||
autohaste = False
|
||||
|
||||
if move == "attack":
|
||||
rank = 3
|
||||
|
||||
if agility > 169:
|
||||
tickspeed = 3
|
||||
elif agility > 97:
|
||||
tickspeed = 4
|
||||
elif agility > 61:
|
||||
tickspeed = 5
|
||||
elif agility > 43:
|
||||
tickspeed = 6
|
||||
elif agility > 34:
|
||||
tickspeed = 7
|
||||
elif agility > 28:
|
||||
tickspeed = 8
|
||||
elif agility > 22:
|
||||
tickspeed = 9
|
||||
elif agility > 18:
|
||||
tickspeed = 10
|
||||
elif agility > 16:
|
||||
tickspeed = 11
|
||||
elif agility > 14:
|
||||
tickspeed = 12
|
||||
elif agility > 11:
|
||||
tickspeed = 13
|
||||
elif agility > 9:
|
||||
tickspeed = 14
|
||||
elif agility > 6:
|
||||
tickspeed = 15
|
||||
elif agility > 4:
|
||||
tickspeed = 16
|
||||
elif agility > 3:
|
||||
tickspeed = 20
|
||||
elif agility > 2:
|
||||
tickspeed = 22
|
||||
elif agility > 1:
|
||||
tickspeed = 24
|
||||
elif agility > 0:
|
||||
tickspeed = 26
|
||||
else:
|
||||
tickspeed = 28
|
||||
|
||||
if playertype == "person":
|
||||
if agility == 1:
|
||||
icv = random.randint(83,84)
|
||||
elif agility == 2:
|
||||
icv = random.randint(77,78)
|
||||
elif agility == 3:
|
||||
icv = random.randint(71,72)
|
||||
elif agility == 4:
|
||||
icv = random.randint(59,60)
|
||||
elif agility == 5:
|
||||
icv = random.randint(47,48)
|
||||
elif agility == 6:
|
||||
icv = random.randint(46,48)
|
||||
elif agility == 7:
|
||||
icv = random.randint(44,45)
|
||||
elif agility == 8:
|
||||
icv = random.randint(43,45)
|
||||
elif agility == 9:
|
||||
icv = random.randint(42,45)
|
||||
elif agility == 10:
|
||||
icv = random.randint(41,42)
|
||||
elif agility == 11:
|
||||
icv = random.randint(40,42)
|
||||
elif agility == 12:
|
||||
icv = random.randint(38,39)
|
||||
elif agility == 13:
|
||||
icv = random.randint(37,39)
|
||||
elif agility == 14:
|
||||
icv = random.randint(36,39)
|
||||
elif agility == 15:
|
||||
icv = random.randint(35,36)
|
||||
elif agility == 16:
|
||||
icv = random.randint(34,36)
|
||||
elif agility == 17:
|
||||
icv = random.randint(32,33)
|
||||
elif agility == 18:
|
||||
icv = random.randint(31,33)
|
||||
elif agility == 19:
|
||||
icv = random.randint(29,30)
|
||||
elif agility == 20:
|
||||
icv = random.randint(28,30)
|
||||
elif agility == 21:
|
||||
icv = random.randint(27,30)
|
||||
elif agility == 22:
|
||||
icv = random.randint(26,30)
|
||||
elif agility == 23:
|
||||
icv = random.randint(26,27)
|
||||
elif agility == 24:
|
||||
icv = random.randint(25,27)
|
||||
elif agility == 25:
|
||||
icv = random.randint(24,27)
|
||||
elif agility == 26:
|
||||
icv = random.randint(23,27)
|
||||
elif agility == 27:
|
||||
icv = random.randint(22,27)
|
||||
elif agility == 28:
|
||||
icv = random.randint(21,27)
|
||||
elif agility == 29:
|
||||
icv = random.randint(23,24)
|
||||
elif agility == 30:
|
||||
icv = random.randint(22,24)
|
||||
elif agility == 31:
|
||||
icv = random.randint(21,24)
|
||||
elif agility == 32:
|
||||
icv = random.randint(20,24)
|
||||
elif agility == 33:
|
||||
icv = random.randint(19,24)
|
||||
elif agility == 34:
|
||||
icv = random.randint(18,24)
|
||||
elif agility == 35:
|
||||
icv = random.randint(20,21)
|
||||
elif agility == 36:
|
||||
icv = random.randint(19,21)
|
||||
elif agility == 37:
|
||||
icv = random.randint(18,21)
|
||||
elif agility == 38:
|
||||
icv = random.randint(18,21)
|
||||
elif agility == 39:
|
||||
icv = random.randint(17,21)
|
||||
elif agility == 39:
|
||||
icv = random.randint(16,21)
|
||||
elif agility == 40:
|
||||
icv = random.randint(15,21)
|
||||
elif agility == 41:
|
||||
icv = random.randint(14,21)
|
||||
elif agility == 42:
|
||||
icv = random.randint(13,21)
|
||||
elif agility == 43:
|
||||
icv = random.randint(12,21)
|
||||
elif agility < 46:
|
||||
icv = random.randint(17,18)
|
||||
elif agility < 48:
|
||||
icv = random.randint(16,18)
|
||||
elif agility < 50:
|
||||
icv = random.randint(15,18)
|
||||
elif agility < 52:
|
||||
icv = random.randint(14,18)
|
||||
elif agility < 54:
|
||||
icv = random.randint(13,18)
|
||||
elif agility < 56:
|
||||
icv = random.randint(11,18)
|
||||
elif agility < 58:
|
||||
icv = random.randint(11,18)
|
||||
elif agility < 60:
|
||||
icv = random.randint(10,18)
|
||||
elif agility < 62:
|
||||
icv = random.randint(9,18)
|
||||
elif agility < 66:
|
||||
icv = random.randint(14,15)
|
||||
elif agility < 70:
|
||||
icv = random.randint(13,15)
|
||||
elif agility < 74:
|
||||
icv = random.randint(12,15)
|
||||
elif agility < 78:
|
||||
icv = random.randint(11,15)
|
||||
elif agility < 82:
|
||||
icv = random.randint(10,15)
|
||||
elif agility < 86:
|
||||
icv = random.randint(9,15)
|
||||
elif agility < 90:
|
||||
icv = random.randint(8,15)
|
||||
elif agility < 94:
|
||||
icv = random.randint(7,15)
|
||||
elif agility < 98:
|
||||
icv = random.randint(6,15)
|
||||
elif agility < 106:
|
||||
icv = random.randint(11,12)
|
||||
elif agility < 114:
|
||||
icv = random.randint(10,12)
|
||||
elif agility < 122:
|
||||
icv = random.randint(9,12)
|
||||
elif agility < 130:
|
||||
icv = random.randint(8,12)
|
||||
elif agility < 138:
|
||||
icv = random.randint(7,12)
|
||||
elif agility < 146:
|
||||
icv = random.randint(6,12)
|
||||
elif agility < 154:
|
||||
icv = random.randint(5,12)
|
||||
elif agility < 162:
|
||||
icv = random.randint(4,12)
|
||||
elif agility < 170:
|
||||
icv = random.randint(3,12)
|
||||
elif agility < 186:
|
||||
icv = random.randint(8,9)
|
||||
elif agility < 202:
|
||||
icv = random.randint(7,9)
|
||||
elif agility < 218:
|
||||
icv = random.randint(6,9)
|
||||
elif agility < 234:
|
||||
icv = random.randint(5,9)
|
||||
elif agility < 250:
|
||||
icv = random.randint(4,9)
|
||||
else:
|
||||
icv = random.randint(3,9)
|
||||
elif playertype == "monster":
|
||||
if agility == 1:
|
||||
icv = random.randint(84,93)
|
||||
elif agility == 2:
|
||||
icv = random.randint(78,86)
|
||||
elif agility == 3:
|
||||
icv = random.randint(72,80)
|
||||
elif agility == 4:
|
||||
icv = random.randint(60,66)
|
||||
elif agility < 7:
|
||||
icv = random.randint(48,53)
|
||||
elif agility < 10:
|
||||
icv = random.randint(45,50)
|
||||
elif agility < 12:
|
||||
icv = random.randint(42,46)
|
||||
elif agility < 15:
|
||||
icv = random.randint(39,43)
|
||||
elif agility < 17:
|
||||
icv = random.randint(36,40)
|
||||
elif agility < 19:
|
||||
icv = random.randint(33,36)
|
||||
elif agility < 23:
|
||||
icv = random.randint(30,33)
|
||||
elif agility < 29:
|
||||
icv = random.randint(27,30)
|
||||
elif agility < 35:
|
||||
icv = random.randint(24,26)
|
||||
elif agility < 44:
|
||||
icv = random.randint(21,23)
|
||||
elif agility < 62:
|
||||
icv = random.randint(18,20)
|
||||
elif agility < 98:
|
||||
icv = random.randint(15,16)
|
||||
elif agility < 170:
|
||||
icv = random.randint(12,13)
|
||||
else:
|
||||
icv = random.randint(9,10)
|
||||
|
||||
if ambush == True:
|
||||
icv = tickspeed * 3
|
||||
|
||||
if speed == "normal":
|
||||
playerspeed = 1
|
||||
elif speed == "haste":
|
||||
playerspeed = 0.5
|
||||
elif speed == "slow":
|
||||
playerspeed = 2
|
||||
|
||||
countvalue = icv
|
||||
|
||||
battle = True
|
||||
while battle == True:
|
||||
|
||||
while countvalue > 0:
|
||||
if speed == "haste":
|
||||
countvalue = countvalue - 2
|
||||
else:
|
||||
countvalue = countvalue - 1
|
||||
|
||||
print (name + " can move")
|
||||
|
||||
countvalue = math.ceil(tickspeed * rank * playerspeed)
|
||||
|
||||
if move == "haste":
|
||||
countvalue = math.floor(countvalue / 2)
|
||||
elif move == "slow":
|
||||
countvalue = countvalue * 2
|
1282
daisho.org
Normal file
1282
daisho.org
Normal file
File diff suppressed because it is too large
Load diff
11
modding.org
Normal file
11
modding.org
Normal file
|
@ -0,0 +1,11 @@
|
|||
- import the .fbx file of the character being replaced, which was exported using ff12 asset converter
|
||||
- may need to flip the model and make it larger
|
||||
- import the other model and transform it to the same scale (may not be the same transformation; make it look the same size, i.e. make the shoulders come to the same level)
|
||||
- get rid of anything not needed on the new model
|
||||
- set new model to view skeleton and points, then select the points and move them so that part of the model is aligned with the skeleton of the old model (e.g. position of arms)
|
||||
- then scale the old model to be the same size as the new model (e.g. length of arms)
|
||||
- capture the bones from the new model and bind them “by proximity” to the old model
|
||||
- undo initial rotation/scaling before exporting
|
||||
- delete all attributes except names
|
||||
- asset converter: put the model and texture in the same folder and convert that
|
||||
- “fix uvs, fix the skin weights”
|
91
party.py
Normal file
91
party.py
Normal file
|
@ -0,0 +1,91 @@
|
|||
tidus = {
|
||||
"maxhp": 520,
|
||||
"maxmp": 12,
|
||||
"strength": 15,
|
||||
"defence": 5,
|
||||
"magic": 5,
|
||||
"mdef": 5,
|
||||
"agility": 10,
|
||||
"luck": 18,
|
||||
"evasion": 10,
|
||||
"accuracy": 10
|
||||
}
|
||||
|
||||
wakka = {
|
||||
"maxhp": 618,
|
||||
"maxmp": 10,
|
||||
"strength": 14,
|
||||
"defence": 10,
|
||||
"magic": 10,
|
||||
"mdef": 5,
|
||||
"agility": 7,
|
||||
"luck": 19,
|
||||
"evasion": 5,
|
||||
"accuracy": 25
|
||||
}
|
||||
|
||||
yuna = {
|
||||
"maxhp": 475,
|
||||
"maxmp": 84,
|
||||
"strength": 5,
|
||||
"defence": 5,
|
||||
"magic": 20,
|
||||
"mdef": 20,
|
||||
"agility": 10,
|
||||
"luck": 17,
|
||||
"evasion": 30,
|
||||
"accuracy": 3
|
||||
}
|
||||
|
||||
lulu = {
|
||||
"maxhp": 380,
|
||||
"maxmp": 92,
|
||||
"strength": 5,
|
||||
"defence": 8,
|
||||
"magic": 20,
|
||||
"mdef": 30,
|
||||
"agility": 5,
|
||||
"luck": 17,
|
||||
"evasion": 40,
|
||||
"accuracy": 3
|
||||
}
|
||||
|
||||
kimahri = {
|
||||
"maxhp": 644,
|
||||
"maxmp": 78,
|
||||
"strength": 16,
|
||||
"defence": 15,
|
||||
"magic": 17,
|
||||
"mdef": 5,
|
||||
"agility": 6,
|
||||
"luck": 18,
|
||||
"evasion": 5,
|
||||
"accuracy": 5
|
||||
}
|
||||
|
||||
auron = {
|
||||
"maxhp": 1030,
|
||||
"maxmp": 33,
|
||||
"strength": 20,
|
||||
"defence": 15,
|
||||
"magic": 5,
|
||||
"mdef": 5,
|
||||
"agility": 5,
|
||||
"luck": 17,
|
||||
"evasion": 5,
|
||||
"accuracy": 3
|
||||
}
|
||||
|
||||
rikku = {
|
||||
"maxhp": 360,
|
||||
"maxmp": 85,
|
||||
"strength": 10,
|
||||
"defence": 8,
|
||||
"magic": 10,
|
||||
"mdef": 8,
|
||||
"agility": 15,
|
||||
"luck": 18,
|
||||
"evasion": 5,
|
||||
"accuracy": 5
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue