Photon Arts table and Enemy data tables added. And with notes.
This commit is contained in:
parent
88e0432afa
commit
883d5f4da4
60
src/App.js
60
src/App.js
@ -23,9 +23,19 @@ const parse = require('csv-parse/lib/sync')
|
|||||||
|
|
||||||
const BACKEND_URL = process.env.REACT_APP_GITPOD_WORKSPACE_URL||process.env.REACT_APP_BACKEND_URL||'https://projectdivar.com:4504'; //You can specify a .env file locally with REACT_APP_BACKEND_URL defining a URL to retrieve data from.
|
const BACKEND_URL = process.env.REACT_APP_GITPOD_WORKSPACE_URL||process.env.REACT_APP_BACKEND_URL||'https://projectdivar.com:4504'; //You can specify a .env file locally with REACT_APP_BACKEND_URL defining a URL to retrieve data from.
|
||||||
|
|
||||||
/*const MELEE_DMG = 0
|
/*
|
||||||
|
Damage types
|
||||||
|
const MELEE_DMG = 0
|
||||||
const RANGE_DMG = 1
|
const RANGE_DMG = 1
|
||||||
const TECH_DMG = 2 //NOT USED YET*/
|
const TECH_DMG = 2
|
||||||
|
|
||||||
|
Art properties
|
||||||
|
const NORMAL = 0
|
||||||
|
const PHOTON_ART = 1
|
||||||
|
const WEAPON_ACTION = 2
|
||||||
|
const STEP_COUNTER = 3
|
||||||
|
const PARRY_COUNTER = 4
|
||||||
|
//NOT USED YET*/
|
||||||
|
|
||||||
function Col(p) {
|
function Col(p) {
|
||||||
return <div className="con">
|
return <div className="con">
|
||||||
@ -554,6 +564,7 @@ function AdminPanel(p) {
|
|||||||
<Link to={process.env.PUBLIC_URL+"/admin/weaponexistencedata"}>Weapon Existence Data</Link><br/>
|
<Link to={process.env.PUBLIC_URL+"/admin/weaponexistencedata"}>Weapon Existence Data</Link><br/>
|
||||||
<Link to={process.env.PUBLIC_URL+"/admin/weapontypes"}>Weapon Types</Link><br/>
|
<Link to={process.env.PUBLIC_URL+"/admin/weapontypes"}>Weapon Types</Link><br/>
|
||||||
<Link to={process.env.PUBLIC_URL+"/admin/classweaponcompatibility"}>Class-Weapon Compatibility</Link><br/>
|
<Link to={process.env.PUBLIC_URL+"/admin/classweaponcompatibility"}>Class-Weapon Compatibility</Link><br/>
|
||||||
|
<Link to={process.env.PUBLIC_URL+"/admin/photonarts"}>Photon Arts</Link><br/>
|
||||||
<hr/>
|
<hr/>
|
||||||
<Link to={process.env.PUBLIC_URL+"/admin/armor"}>Armor</Link><br/>
|
<Link to={process.env.PUBLIC_URL+"/admin/armor"}>Armor</Link><br/>
|
||||||
<Link to={process.env.PUBLIC_URL+"/admin/potentials"}>Potentials</Link><br/>
|
<Link to={process.env.PUBLIC_URL+"/admin/potentials"}>Potentials</Link><br/>
|
||||||
@ -564,9 +575,12 @@ function AdminPanel(p) {
|
|||||||
<Link to={process.env.PUBLIC_URL+"/admin/skills"}>Skills</Link><br/>
|
<Link to={process.env.PUBLIC_URL+"/admin/skills"}>Skills</Link><br/>
|
||||||
<Link to={process.env.PUBLIC_URL+"/admin/skilltypes"}>Skill Types</Link><br/>
|
<Link to={process.env.PUBLIC_URL+"/admin/skilltypes"}>Skill Types</Link><br/>
|
||||||
<Link to={process.env.PUBLIC_URL+"/admin/skilldata"}>Skill Data</Link><br/>
|
<Link to={process.env.PUBLIC_URL+"/admin/skilldata"}>Skill Data</Link><br/>
|
||||||
|
<Link to={process.env.PUBLIC_URL+"/admin/photonarts"}>Photon Arts</Link><br/>
|
||||||
<hr/>
|
<hr/>
|
||||||
<Link to={process.env.PUBLIC_URL+"/admin/augments"}>Augments</Link><br/>
|
<Link to={process.env.PUBLIC_URL+"/admin/augments"}>Augments</Link><br/>
|
||||||
<Link to={process.env.PUBLIC_URL+"/admin/augmenttypes"}>Augment Types</Link><br/>
|
<Link to={process.env.PUBLIC_URL+"/admin/augmenttypes"}>Augment Types</Link><br/>
|
||||||
|
<hr/>
|
||||||
|
<Link to={process.env.PUBLIC_URL+"/admin/enemydata"}>Enemy Data</Link><br/>
|
||||||
<hr/>
|
<hr/>
|
||||||
<Link to={process.env.PUBLIC_URL+"/admin/food"}>Food</Link><br/>
|
<Link to={process.env.PUBLIC_URL+"/admin/food"}>Food</Link><br/>
|
||||||
<Link to={process.env.PUBLIC_URL+"/admin/foodmultipliers"}>Food Multipliers</Link><br/>
|
<Link to={process.env.PUBLIC_URL+"/admin/foodmultipliers"}>Food Multipliers</Link><br/>
|
||||||
@ -585,6 +599,9 @@ function AdminPanel(p) {
|
|||||||
<Route path={process.env.PUBLIC_URL+"/admin/classweaponcompatibility"}>
|
<Route path={process.env.PUBLIC_URL+"/admin/classweaponcompatibility"}>
|
||||||
<TableEditor path="/class_weapon_type_data"/>
|
<TableEditor path="/class_weapon_type_data"/>
|
||||||
</Route>
|
</Route>
|
||||||
|
<Route path={process.env.PUBLIC_URL+"/admin/photonarts"}>
|
||||||
|
<TableEditor path="/photon_art"/>
|
||||||
|
</Route>
|
||||||
<Route path={process.env.PUBLIC_URL+"/admin/weapons"}>
|
<Route path={process.env.PUBLIC_URL+"/admin/weapons"}>
|
||||||
<TableEditor path="/weapon"/>
|
<TableEditor path="/weapon"/>
|
||||||
</Route>
|
</Route>
|
||||||
@ -621,6 +638,9 @@ function AdminPanel(p) {
|
|||||||
<Route path={process.env.PUBLIC_URL+"/admin/augmenttypes"}>
|
<Route path={process.env.PUBLIC_URL+"/admin/augmenttypes"}>
|
||||||
<TableEditor path="/augment_type"/>
|
<TableEditor path="/augment_type"/>
|
||||||
</Route>
|
</Route>
|
||||||
|
<Route path={process.env.PUBLIC_URL+"/admin/enemydata"}>
|
||||||
|
<TableEditor path="/enemy_data"/>
|
||||||
|
</Route>
|
||||||
<Route path={process.env.PUBLIC_URL+"/admin/food"}>
|
<Route path={process.env.PUBLIC_URL+"/admin/food"}>
|
||||||
<TableEditor path="/food"/>
|
<TableEditor path="/food"/>
|
||||||
</Route>
|
</Route>
|
||||||
@ -660,23 +680,23 @@ function DamageCalculator(p) {
|
|||||||
axios.get(BACKEND_URL+"/augment")
|
axios.get(BACKEND_URL+"/augment")
|
||||||
.then((data)=>{
|
.then((data)=>{
|
||||||
var augmentData = {}
|
var augmentData = {}
|
||||||
data.data.rows.forEach((entry)=>{augmentData[entry.id]=entry})
|
data.data.rows.forEach((entry)=>{augmentData[entry.name]=entry})
|
||||||
setAugmentData(augmentData)
|
setAugmentData(augmentData)
|
||||||
})
|
})
|
||||||
},[])
|
},[])
|
||||||
|
|
||||||
const character = {
|
const character = {
|
||||||
weapon:{
|
weapon:{
|
||||||
augments:[13,7,2,5]
|
augments:["1","2"]
|
||||||
},
|
},
|
||||||
armor1:{
|
armor1:{
|
||||||
augments:[13,1,5]
|
augments:["2"]
|
||||||
},
|
},
|
||||||
armor2:{
|
armor2:{
|
||||||
augments:[13,2,8]
|
augments:[]
|
||||||
},
|
},
|
||||||
armor3:{
|
armor3:{
|
||||||
augments:[13,4,1]
|
augments:[]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -723,6 +743,32 @@ function DamageCalculator(p) {
|
|||||||
setRawDmg(((weaponTotalAtk*dmgVariance)+baseAtk-enemyDef)*multipliers/5)
|
setRawDmg(((weaponTotalAtk*dmgVariance)+baseAtk-enemyDef)*multipliers/5)
|
||||||
},[weaponTotalAtk,dmgVariance,baseAtk,enemyDef,multipliers])
|
},[weaponTotalAtk,dmgVariance,baseAtk,enemyDef,multipliers])
|
||||||
|
|
||||||
|
const [atkmult,setAtkMult] = useState(1);
|
||||||
|
const [partmult,setPartMult] = useState(1);
|
||||||
|
const [elementalWeaknessMult,setElementalWeaknessMult] = useState(1.2)
|
||||||
|
const [mainClassWeaponBoost,setMainClassWeaponBoost] = useState(1.1)
|
||||||
|
const [classSkillMult,setClassSkillMult] = useState(1)
|
||||||
|
const [equipMult,setEquipMult] = useState(1)
|
||||||
|
|
||||||
|
const [augmentEquipMult,setAugmentEquipMult] = useState(1)
|
||||||
|
const [potencyFloorEquipMult,setPotencyFloorEquipMult] = useState(1)
|
||||||
|
const [elementalWeaponEquipMult,setElementalWeaponEquipMult] = useState(1.1)
|
||||||
|
|
||||||
|
const [critMult,setCritMult] = useState(1.2)
|
||||||
|
const [appropriateDistance,setAppropriateDistance] = useState(1)
|
||||||
|
|
||||||
|
const [foodBoost,setFoodBoost] = useState(1)
|
||||||
|
const [fieldEffects,setFieldEffects] = useState(1.05)
|
||||||
|
const [statusAilments,setStatusAilments] = useState(1)
|
||||||
|
|
||||||
|
const [enemyCorrectionMult,setEnemyCorrectionMult] = useState(1)
|
||||||
|
|
||||||
|
const [highLevelEnemy,setHighLevelEnemy] = useState(1)
|
||||||
|
|
||||||
|
useEffect(()=>{
|
||||||
|
setMultipliers(atkmult*partmult*elementalWeaknessMult*mainClassWeaponBoost*classSkillMult*equipMult*augmentEquipMult*potencyFloorEquipMult*elementalWeaponEquipMult*critMult*appropriateDistance*foodBoost*fieldEffects*statusAilments*enemyCorrectionMult*highLevelEnemy)
|
||||||
|
},[atkmult,partmult,elementalWeaknessMult,mainClassWeaponBoost,classSkillMult,equipMult,augmentEquipMult,potencyFloorEquipMult,elementalWeaponEquipMult,critMult,appropriateDistance,foodBoost,fieldEffects,statusAilments,enemyCorrectionMult,highLevelEnemy])
|
||||||
|
|
||||||
return <>
|
return <>
|
||||||
<div style={{background:"rgba(200,255,200,1)"}}>
|
<div style={{background:"rgba(200,255,200,1)"}}>
|
||||||
Weapon Total Atk:<EditStatBox value={weaponTotalAtk} callback={(val)=>{setWeaponTotalAtk(val)}}/>
|
Weapon Total Atk:<EditStatBox value={weaponTotalAtk} callback={(val)=>{setWeaponTotalAtk(val)}}/>
|
||||||
|
137
src/NOTES.md
Normal file
137
src/NOTES.md
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
useEffect(()=>{
|
||||||
|
setRawDmg(((weaponTotalAtk*dmgVariance)+baseAtk-enemyDef)*multipliers/5)
|
||||||
|
},[weaponTotalAtk,dmgVariance,baseAtk,enemyDef,multipliers])
|
||||||
|
|
||||||
|
**Hello**
|
||||||
|
/*
|
||||||
|
|
||||||
|
Chain Build Power = 60 * (Power when building 100 chain with that PA + (Power of 100 Chain, C Point Blank * 1 + Point Blank * 2 + Onslaught) + (Power of S Roll * 3))
|
||||||
|
÷ (Frame Count when building 100 chain with that PA + (Frame Count of C Point Blank * 1 + Point Blank * 2 + Onslaught) + (Frames of S Roll * 3))
|
||||||
|
= 60 * (PA power * (100 / hit count) + 2*(C Point*1 + Point*2 + Onslaught) + S Roll*3 power)/((PA frames / 1.2)*(100 / hit count)+30+(62*3+38+38*3)/1.2)
|
||||||
|
|
||||||
|
|
||||||
|
Base Damage = (Attack Power - Enemy Defense)
|
||||||
|
* (all multipliers, including Attack Multiplier, Part Multiplier, Main Class Weapon Boost, Class Skill Multiplier, etc.)/5
|
||||||
|
|
||||||
|
Attack Multiplier based on Normal Atk or PA used NEED TO ADD TO DB
|
||||||
|
Part Multiplier Usually 1 or 1.5 CUSTOM FIELD - db later
|
||||||
|
Elemental Weakness Multiplier 1.2 CHECKBOX - db later
|
||||||
|
Main Class Weapon Boost 1.1 AUTO - already in db
|
||||||
|
Class Skill Multiplier NEED TO ADD TO DB
|
||||||
|
Equip Multipliers
|
||||||
|
Augment AUTO - already in db
|
||||||
|
Elemental Weapon 1.15 against weak, 1.1 against non-weak DROPDOWN
|
||||||
|
Crit Multis 1.2 base + whatever AUTO - (preset skill termina, already in db)
|
||||||
|
Appropriate Distance FOR UI, CHECK IF BELOW THEN SHOW DROPDOWN
|
||||||
|
Assault Rifle Close Range 1.1, Mid Range 1.2, Long Range 1.0
|
||||||
|
TMG Close Range 1.1, Mid Range 1.2, Long Range 1.0
|
||||||
|
Wired Lance Short Range 1.0, Mid Range 1.2
|
||||||
|
Food Boost AUTO - ALREADY IN DB
|
||||||
|
Field Effects Region Mag 1.05, Drone Boost 1.1 CHECKBOX
|
||||||
|
Status Ailment to Player burn 0.9-0.95 IDC RN - IMPLEMENTED VIA CUSTOM BOX
|
||||||
|
Enemy Special Corrections
|
||||||
|
UQ Boss BREAK damage 2.0 CHECKBOX -> ENEMY
|
||||||
|
Gigantix 0.5 CHECKBOX -> ENEMY
|
||||||
|
Enemy Shifta/Deband worry later
|
||||||
|
|
||||||
|
High-Level Enemy Enemy level >=5 player level, dmg x 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
https://docs.google.com/spreadsheets/d/1_OgubzM5QFe4rua4Xu0GSMAI8Idoq8r2yI8Ioyec6oY/edit#gid=661779228
|
||||||
|
|
||||||
|
|
||||||
|
MORE DATABASE STUFF
|
||||||
|
LATER Enemy Data
|
||||||
|
Level
|
||||||
|
Defense
|
||||||
|
Attack Power
|
||||||
|
|
||||||
|
-> custom field [Level, Defense, Atk Power] <-
|
||||||
|
|
||||||
|
|
||||||
|
Patty Size
|
||||||
|
5oz
|
||||||
|
7oz
|
||||||
|
|
||||||
|
2. The players maximum Attack Power is determined by the level of the enemy. If the attack power is over a certain value, it will be corrected down (e.g. Lv1=900, Lv10=1068, Lv20=1292).
|
||||||
|
3. Calculate the Base Damage using the following formula.
|
||||||
|
Base Damage = (Attack Power - Enemy Defense) * (all multipliers, including Attack Multiplier, Part Multiplier, Main Class Weapon Boost, Class Skill Multiplier, etc.)/5
|
||||||
|
4. Round the Base Damage to the nearest whole number to get the final damage."
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
**Edge Cases**
|
||||||
|
**Hunter** Volkraptor
|
||||||
|
**Gunner Sux** Chain Boost
|
||||||
|
**Force** Photon Flare Short Charge
|
||||||
|
**Techter** Deband PP Recovery Boost
|
||||||
|
Deband Ward Bad Condition
|
||||||
|
/*
|
||||||
|
|
||||||
|
|
||||||
|
Add photon_art table
|
||||||
|
name
|
||||||
|
weapon_type_id
|
||||||
|
potency
|
||||||
|
power_distribution
|
||||||
|
pp
|
||||||
|
frames
|
||||||
|
dps
|
||||||
|
Add enemy_data table
|
||||||
|
level
|
||||||
|
def
|
||||||
|
atk
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
Loading…
x
Reference in New Issue
Block a user