Photon Arts table and Enemy data tables added. And with notes.

master
Joshua Sigona 3 years ago
parent 88e0432afa
commit 883d5f4da4
  1. 60
      src/App.js
  2. 137
      src/NOTES.md

@ -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 MELEE_DMG = 0
/*
Damage types
const MELEE_DMG = 0
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) {
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/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/photonarts"}>Photon Arts</Link><br/>
<hr/>
<Link to={process.env.PUBLIC_URL+"/admin/armor"}>Armor</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/skilltypes"}>Skill Types</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/>
<Link to={process.env.PUBLIC_URL+"/admin/augments"}>Augments</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/>
<Link to={process.env.PUBLIC_URL+"/admin/food"}>Food</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"}>
<TableEditor path="/class_weapon_type_data"/>
</Route>
<Route path={process.env.PUBLIC_URL+"/admin/photonarts"}>
<TableEditor path="/photon_art"/>
</Route>
<Route path={process.env.PUBLIC_URL+"/admin/weapons"}>
<TableEditor path="/weapon"/>
</Route>
@ -621,6 +638,9 @@ function AdminPanel(p) {
<Route path={process.env.PUBLIC_URL+"/admin/augmenttypes"}>
<TableEditor path="/augment_type"/>
</Route>
<Route path={process.env.PUBLIC_URL+"/admin/enemydata"}>
<TableEditor path="/enemy_data"/>
</Route>
<Route path={process.env.PUBLIC_URL+"/admin/food"}>
<TableEditor path="/food"/>
</Route>
@ -660,23 +680,23 @@ function DamageCalculator(p) {
axios.get(BACKEND_URL+"/augment")
.then((data)=>{
var augmentData = {}
data.data.rows.forEach((entry)=>{augmentData[entry.id]=entry})
data.data.rows.forEach((entry)=>{augmentData[entry.name]=entry})
setAugmentData(augmentData)
})
},[])
const character = {
weapon:{
augments:[13,7,2,5]
augments:["1","2"]
},
armor1:{
augments:[13,1,5]
augments:["2"]
},
armor2:{
augments:[13,2,8]
augments:[]
},
armor3:{
augments:[13,4,1]
augments:[]
}
}
@ -722,6 +742,32 @@ function DamageCalculator(p) {
useEffect(()=>{
setRawDmg(((weaponTotalAtk*dmgVariance)+baseAtk-enemyDef)*multipliers/5)
},[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 <>
<div style={{background:"rgba(200,255,200,1)"}}>

@ -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…
Cancel
Save