add: Pet system.
parent
ef842f99c6
commit
c74891af87
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models\Enums;
|
||||
|
||||
enum GrowthPetAffectEnum: string
|
||||
{
|
||||
case JIJOONG_WARRIOR = 'JIJOONG_WARRIOR';
|
||||
case JIJOONG_SURA = 'JIJOONG_SURA';
|
||||
case JIJOONG_ASSASSIN = 'JIJOONG_ASSASSIN';
|
||||
case JIJOONG_SHAMAN = 'JIJOONG_SHAMAN';
|
||||
case PACHEON = 'PACHEON';
|
||||
case BANYA = 'BANYA';
|
||||
case CHEONRYEONG = 'CHEONRYEONG';
|
||||
case CHOEHOENBIMU = 'CHOEHOENBIMU';
|
||||
case HEAL = 'HEAL';
|
||||
case STEALHP = 'STEALHP';
|
||||
case STEALMP = 'STEALMP';
|
||||
case BLOCK = 'BLOCK';
|
||||
case REFLECT_MELEE = 'REFLECT_MELEE';
|
||||
case GOLD_DROP = 'GOLD_DROP';
|
||||
case BOW_DISTANCE = 'BOW_DISTANCE';
|
||||
case INVINCIBILITY = 'INVINCIBILITY';
|
||||
case REMOVAL = 'REMOVAL';
|
||||
case POTION = 'POTION';
|
||||
case MOB_BONUS = 'MOB_BONUS';
|
||||
case EXP = 'EXP';
|
||||
case HP_RECOVER = 'HP_RECOVER';
|
||||
case FEATHER = 'FEATHER';
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models\Enums;
|
||||
|
||||
enum GrowthPetPointEnum: string
|
||||
{
|
||||
case RESIST_WARRIOR = 'RESIST_WARRIOR';
|
||||
case RESIST_SURA = 'RESIST_SURA';
|
||||
case RESIST_ASSASSIN = 'RESIST_ASSASSIN';
|
||||
case RESIST_SHAMAN = 'RESIST_SHAMAN';
|
||||
case RESIST_MAGIC_REDUCTION = 'RESIST_MAGIC_REDUCTION';
|
||||
case MELEE_MAGIC_ATT_BONUS_PER = 'MELEE_MAGIC_ATT_BONUS_PER';
|
||||
case ATTBONUS_MONSTER = 'ATTBONUS_MONSTER';
|
||||
case PENETRATE_PCT = 'PENETRATE_PCT';
|
||||
case CASTING_SPEED = 'CASTING_SPEED';
|
||||
case BOW_DISTANCE = 'BOW_DISTANCE';
|
||||
case STEAL_SP = 'STEAL_SP';
|
||||
case STEAL_HP = 'STEAL_HP';
|
||||
case KILL_HP_RECOVERY = 'KILL_HP_RECOVERY';
|
||||
case BLOCK = 'BLOCK';
|
||||
case REFLECT_MELEE = 'REFLECT_MELEE';
|
||||
case GOLD_DOUBLE_BONUS = 'GOLD_DOUBLE_BONUS';
|
||||
case EXP_DOUBLE_BONUS = 'EXP_DOUBLE_BONUS';
|
||||
case POTION_BONUS = 'POTION_BONUS';
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models\Enums;
|
||||
|
||||
enum GrowthPetStateEnum: string
|
||||
{
|
||||
case UPBRINGING = 'UPBRINGING';
|
||||
case BAG = 'BAG';
|
||||
case SAFEBOX = 'SAFEBOX';
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models\Enums;
|
||||
|
||||
enum GrowthPetTypeEnum: string
|
||||
{
|
||||
case PASSIVE = 'PASSIVE';
|
||||
case AUTO = 'AUTO';
|
||||
}
|
||||
|
|
@ -39,7 +39,10 @@ enum ItemTypesEnum: int
|
|||
case ITEM_TYPE_SECONDARY_COIN = 32;
|
||||
case ITEM_TYPE_RING = 33;
|
||||
case ITEM_TYPE_BELT = 34;
|
||||
case ITEM_TYPE_MAX_NUM = 35;
|
||||
case ITEM_TYPE_SOUL = 35;
|
||||
case ITEM_TYPE_GACHA = 36;
|
||||
case ITEM_TYPE_PET = 37;
|
||||
case ITEM_TYPE_MAX_NUM = 38;
|
||||
|
||||
public function getLabel(): string
|
||||
{
|
||||
|
|
|
|||
|
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models\Game\Player;
|
||||
|
||||
use App\Models\Enums\GrowthPetStateEnum;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class GrowthPet extends Model
|
||||
{
|
||||
/**
|
||||
* Indicates if the model should be timestamped.
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
public $timestamps = false;
|
||||
|
||||
/**
|
||||
* The table associated with the model.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $table = 'growth_pet';
|
||||
|
||||
/**
|
||||
* The primary key for the model.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $primaryKey = 'id';
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $fillable = [
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes that should be hidden for serialization.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $hidden = [
|
||||
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes that should be cast.
|
||||
*
|
||||
* @var array<string, string>
|
||||
*/
|
||||
protected $casts = [
|
||||
'state' => GrowthPetStateEnum::class,
|
||||
];
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models\Game\Player;
|
||||
|
||||
use App\Models\Enums\GrowthPetAffectEnum;
|
||||
use App\Models\Enums\GrowthPetPointEnum;
|
||||
use App\Models\Enums\GrowthPetTypeEnum;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class GrowthPetSkillProto extends Model
|
||||
{
|
||||
/**
|
||||
* Indicates if the model should be timestamped.
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
public $timestamps = false;
|
||||
|
||||
/**
|
||||
* The table associated with the model.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $table = 'growth_pet_skill_proto';
|
||||
|
||||
/**
|
||||
* The primary key for the model.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $primaryKey = '';
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $fillable = [
|
||||
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes that should be hidden for serialization.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $hidden = [
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes that should be cast.
|
||||
*
|
||||
* @var array<string, string>
|
||||
*/
|
||||
protected $casts = [
|
||||
'bType' => GrowthPetTypeEnum::class,
|
||||
'setAffectFlag' => GrowthPetAffectEnum::class,
|
||||
'szPointOn' => GrowthPetPointEnum::class,
|
||||
];
|
||||
}
|
||||
|
|
@ -0,0 +1,435 @@
|
|||
{
|
||||
"55701": [
|
||||
{
|
||||
"dwSkillVnum": 1,
|
||||
"szName": "Resistance (Warrior)",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "JIJOONG_WARRIOR",
|
||||
"szPointOn": "RESIST_WARRIOR",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.42 + lv*0.15)",
|
||||
"1 + (k*0.42 + lv*0.15)",
|
||||
"1 + (k*0.42 + lv*0.15)",
|
||||
"1 + (k*0.42 + lv*0.15)",
|
||||
"1 + (k*0.455 + lv*0.1625)",
|
||||
"1 + (k*0.455 + lv*0.1625)",
|
||||
"1 + (k*0.455 + lv*0.1625)",
|
||||
"1 + (k*0.455 + lv*0.1625)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 2,
|
||||
"szName": "Resistance (Sura)",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "JIJOONG_SURA",
|
||||
"szPointOn": "RESIST_SURA",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.42 + lv*0.15)",
|
||||
"1 + (k*0.42 + lv*0.15)",
|
||||
"1 + (k*0.42 + lv*0.15)",
|
||||
"1 + (k*0.42 + lv*0.15)",
|
||||
"1 + (k*0.455 + lv*0.1625)",
|
||||
"1 + (k*0.455 + lv*0.1625)",
|
||||
"1 + (k*0.455 + lv*0.1625)",
|
||||
"1 + (k*0.455 + lv*0.1625)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 3,
|
||||
"szName": "Resistance (Ninja)",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "JIJOONG_ASSASSIN",
|
||||
"szPointOn": "RESIST_ASSASSIN",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 4,
|
||||
"szName": "Resistance (Shaman)",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "JIJOONG_SHAMAN",
|
||||
"szPointOn": "RESIST_SHAMAN",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 6,
|
||||
"szName": "Berserker",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "PACHEON",
|
||||
"szPointOn": "MELEE_MAGIC_ATT_BONUS_PER",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 7,
|
||||
"szName": "Anti-Magic",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "BANYA",
|
||||
"szPointOn": "RESIST_MAGIC_REDUCTION",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 8,
|
||||
"szName": "Haste",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "CHEONRYEONG",
|
||||
"szPointOn": "CASTING_SPEED",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.595 + lv*0.2125)",
|
||||
"1 + (k*0.595 + lv*0.2125)",
|
||||
"1 + (k*0.595 + lv*0.2125)",
|
||||
"1 + (k*0.595 + lv*0.2125)",
|
||||
"1 + (k*0.595 + lv*0.2125)",
|
||||
"1 + (k*0.595 + lv*0.2125)",
|
||||
"1 + (k*0.595 + lv*0.2125)",
|
||||
"1 + (k*0.595 + lv*0.2125)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 9,
|
||||
"szName": "Drill",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "CHOEHOENBIMU",
|
||||
"szPointOn": "PENETRATE_PCT",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 10,
|
||||
"szName": "Restoration",
|
||||
"bType": "AUTO",
|
||||
"dwCooldown": 480,
|
||||
"setAffectFlag": "HEAL",
|
||||
"szPointOn": null,
|
||||
"pointPoly": [
|
||||
"706.6 + (k*222.579 + lv*79.4925)",
|
||||
"706.6 + (k*222.579 + lv*79.4925)",
|
||||
"706.6 + (k*222.579 + lv*79.4925)",
|
||||
"706.6 + (k*222.579 + lv*79.4925)",
|
||||
"706.6 + (k*222.579 + lv*79.4925)",
|
||||
"706.6 + (k*222.579 + lv*79.4925)",
|
||||
"706.6 + (k*222.579 + lv*79.4925)",
|
||||
"706.6 + (k*222.579 + lv*79.4925)"
|
||||
],
|
||||
"szActivatePctPoly": "58",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 11,
|
||||
"szName": "Vampirism",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "STEALHP",
|
||||
"szPointOn": "STEAL_HP",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 12,
|
||||
"szName": "Spiritualism",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "STEALMP",
|
||||
"szPointOn": "STEAL_SP",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.21 + lv*0.075)",
|
||||
"1 + (k*0.21 + lv*0.075)",
|
||||
"1 + (k*0.21 + lv*0.075)",
|
||||
"1 + (k*0.21 + lv*0.075)",
|
||||
"1 + (k*0.21 + lv*0.075)",
|
||||
"1 + (k*0.21 + lv*0.075)",
|
||||
"1 + (k*0.21 + lv*0.075)",
|
||||
"1 + (k*0.21 + lv*0.075)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 13,
|
||||
"szName": "Bulwark",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "BLOCK",
|
||||
"szPointOn": "BLOCK",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)",
|
||||
"1 + (k*0.385 + lv*0.1375)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 14,
|
||||
"szName": "Reflection",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "REFLECT_MELEE",
|
||||
"szPointOn": "REFLECT_MELEE",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 15,
|
||||
"szName": "Yang Drop",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "GOLD_DROP",
|
||||
"szPointOn": "GOLD_DOUBLE_BONUS",
|
||||
"pointPoly": [
|
||||
"10.6 + (k*3.339 + lv*1.1925)",
|
||||
"10.8 + (k*3.402 + lv*1.215)",
|
||||
"10.8 + (k*3.402 + lv*1.215)",
|
||||
"11.2 + (k*3.528 + lv*1.26)",
|
||||
"11.2 + (k*3.528 + lv*1.26)",
|
||||
"11.6 + (k*3.654 + lv*1.305)",
|
||||
"11.6 + (k*3.654 + lv*1.305)",
|
||||
"11.6 + (k*3.654 + lv*1.305)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 16,
|
||||
"szName": "Range",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "BOW_DISTANCE",
|
||||
"szPointOn": "BOW_DISTANCE",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.21 + lv*0.075)",
|
||||
"1 + (k*0.21 + lv*0.075)",
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 17,
|
||||
"szName": "Immortal",
|
||||
"bType": "AUTO",
|
||||
"dwCooldown": 600,
|
||||
"setAffectFlag": "INVINCIBILITY",
|
||||
"szPointOn": null,
|
||||
"pointPoly": [
|
||||
"10 + (k*0.595 + lv*0.2125)",
|
||||
"10 + (k*0.595 + lv*0.2125)",
|
||||
"10 + (k*0.595 + lv*0.2125)",
|
||||
"10 + (k*0.595 + lv*0.2125)",
|
||||
"10 + (k*0.595 + lv*0.2125)",
|
||||
"10 + (k*0.595 + lv*0.2125)",
|
||||
"10 + (k*0.595 + lv*0.2125)",
|
||||
"10 + (k*0.595 + lv*0.2125)"
|
||||
],
|
||||
"szActivatePctPoly": "53",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 18,
|
||||
"szName": "Panacea",
|
||||
"bType": "AUTO",
|
||||
"dwCooldown": 480,
|
||||
"setAffectFlag": "REMOVAL",
|
||||
"szPointOn": null,
|
||||
"pointPoly": ["0", "0", "0", "0", "0", "0", "0", "0"],
|
||||
"szActivatePctPoly": "41",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 19,
|
||||
"szName": "Master Brewer",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "POTION",
|
||||
"szPointOn": "POTION_BONUS",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)",
|
||||
"1 + (k*0.315 + lv*0.1125)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 20,
|
||||
"szName": "Monster Hunter",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "MOB_BONUS",
|
||||
"szPointOn": "ATTBONUS_MONSTER",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)",
|
||||
"1 + (k*0.245 + lv*0.0875)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 21,
|
||||
"szName": "Eagle Eyes",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "EXP",
|
||||
"szPointOn": "EXP_DOUBLE_BONUS",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 22,
|
||||
"szName": "Life Drain",
|
||||
"bType": "PASSIVE",
|
||||
"dwCooldown": 0,
|
||||
"setAffectFlag": "HP_RECOVER",
|
||||
"szPointOn": "KILL_HP_RECOVERY",
|
||||
"pointPoly": [
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)",
|
||||
"1 + (k*0.175 + lv*0.0625)"
|
||||
],
|
||||
"szActivatePctPoly": "0",
|
||||
"szDurationPoly": "0"
|
||||
},
|
||||
{
|
||||
"dwSkillVnum": 23,
|
||||
"szName": "Light as a Feather",
|
||||
"bType": "AUTO",
|
||||
"dwCooldown": 10,
|
||||
"setAffectFlag": "FEATHER",
|
||||
"szPointOn": null,
|
||||
"pointPoly": [
|
||||
"150 + (k*5.25 + lv*1.875)",
|
||||
"150 + (k*5.25 + lv*1.875)",
|
||||
"150 + (k*5.25 + lv*1.875)",
|
||||
"150 + (k*5.25 + lv*1.875)",
|
||||
"150 + (k*5.25 + lv*1.875)",
|
||||
"150 + (k*5.25 + lv*1.875)",
|
||||
"150 + (k*5.25 + lv*1.875)",
|
||||
"150 + (k*5.25 + lv*1.875)"
|
||||
],
|
||||
"szActivatePctPoly": "44+ (k*0.455 + lv*0.1625)",
|
||||
"szDurationPoly": "50 + (k*2.8 + lv*1)"
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
use App\Models\Game\Player\RefineProto;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\File;
|
||||
|
|
@ -15,7 +16,7 @@ return new class extends Migration
|
|||
public function up()
|
||||
{
|
||||
Schema::create('refine_proto', function (Blueprint $table) {
|
||||
$table->unsignedInteger('id', true)->primary();
|
||||
$table->unsignedInteger('id', false)->primary();
|
||||
$table->unsignedInteger('vnum0')->default(0);
|
||||
$table->smallInteger('count0')->default(0);
|
||||
$table->unsignedInteger('vnum1')->default(0);
|
||||
|
|
@ -34,7 +35,7 @@ return new class extends Migration
|
|||
|
||||
// Populate the table data
|
||||
$data = File::json(database_path('data/refine_proto.json'));
|
||||
\App\Models\Game\Player\RefineProto::upsert($data, ['id']);
|
||||
RefineProto::upsert($data, ['id']);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,59 @@
|
|||
<?php
|
||||
|
||||
use App\Models\Enums\GrowthPetStateEnum;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('growth_pet', function (Blueprint $table) {
|
||||
$table->integer('id')->primary();
|
||||
$table->integer('owner_id');
|
||||
$table->integer('vnum');
|
||||
|
||||
$table->enum('state', array_column(GrowthPetStateEnum::cases(), 'value'))
|
||||
->default(GrowthPetStateEnum::UPBRINGING)
|
||||
->nullable();
|
||||
|
||||
$table->string('name', 20)->nullable();
|
||||
|
||||
$table->tinyInteger('size');
|
||||
$table->integer('level')->default(1)->nullable();
|
||||
$table->tinyInteger('level_step')->default(0)->nullable();
|
||||
$table->tinyInteger('evolution')->default(1)->nullable();
|
||||
$table->tinyInteger('type')->nullable();
|
||||
|
||||
$table->integer('hp')->default(0)->nullable();
|
||||
$table->integer('sp')->default(0)->nullable();
|
||||
$table->integer('def')->default(0)->nullable();
|
||||
|
||||
$table->tinyInteger('hp_apply')->default(0)->nullable();
|
||||
$table->tinyInteger('sp_apply')->default(0)->nullable();
|
||||
$table->tinyInteger('def_apply')->default(0)->nullable();
|
||||
$table->tinyInteger('age_apply')->default(0)->nullable();
|
||||
|
||||
$table->binary('skill_level')->nullable();
|
||||
|
||||
$table->integer('exp')->nullable();
|
||||
$table->integer('item_exp')->nullable();
|
||||
|
||||
$table->dateTime('birthday')->nullable();
|
||||
$table->integer('end_time')->default(0)->nullable();
|
||||
$table->integer('max_time')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('growth_pet');
|
||||
}
|
||||
};
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
<?php
|
||||
|
||||
use App\Models\Enums\GrowthPetAffectEnum;
|
||||
use App\Models\Enums\GrowthPetPointEnum;
|
||||
use App\Models\Enums\GrowthPetTypeEnum;
|
||||
use App\Models\Game\Player\GrowthPetSkillProto;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('growth_pet_skill_proto', function (Blueprint $table) {
|
||||
$table->integer('dwPetVnum');
|
||||
$table->integer('dwSkillVnum');
|
||||
$table->string('szName', 32);
|
||||
$table->enum('bType', array_column(GrowthPetTypeEnum::cases(), 'value'));
|
||||
$table->integer('dwCooldown')->length(3);
|
||||
|
||||
$table->enum('setAffectFlag', array_column(GrowthPetAffectEnum::cases(), 'value'))->nullable();
|
||||
|
||||
$table->enum('szPointOn', array_column(GrowthPetPointEnum::cases(), 'value'))->nullable();
|
||||
|
||||
$table->string('szPointPoly1', 100);
|
||||
$table->string('szPointPoly2', 100);
|
||||
$table->string('szPointPoly3', 100);
|
||||
$table->string('szPointPoly4', 100);
|
||||
$table->string('szPointPoly5', 100);
|
||||
$table->string('szPointPoly6', 100);
|
||||
$table->string('szPointPoly7', 100);
|
||||
$table->string('szPointPoly8', 100);
|
||||
$table->string('szActivatePctPoly', 100);
|
||||
$table->string('szDurationPoly', 100);
|
||||
|
||||
$table->primary(['dwPetVnum', 'dwSkillVnum']);
|
||||
});
|
||||
|
||||
// Populate the table data
|
||||
$data = File::json(database_path('data/growth_pet_skill_proto.json'));
|
||||
|
||||
GrowthPetSkillProto::upsert(
|
||||
collect($data)->flatMap(function ($skills, $petVnum) {
|
||||
return collect($skills)->map(function ($skill) use ($petVnum) {
|
||||
$skill['dwPetVnum'] = $petVnum;
|
||||
$skill = [
|
||||
...$skill,
|
||||
...collect(array_pad($skill['pointPoly'], 8, 0))
|
||||
->mapWithKeys(fn ($val, $key) => ['szPointPoly'.($key + 1) => $val])
|
||||
->toArray(),
|
||||
];
|
||||
unset($skill['pointPoly']);
|
||||
|
||||
return $skill;
|
||||
});
|
||||
})->toArray(),
|
||||
['dwPetVnum', 'dwSkillVnum']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('growth_pet_skill_proto');
|
||||
}
|
||||
};
|
||||
Loading…
Reference in New Issue