1
This commit is contained in:
parent
cf68eae8dd
commit
ea222aef76
@ -262,6 +262,7 @@ float Car::GetRadius()
|
||||
float Car::GetSpeed()
|
||||
{
|
||||
float speed = hero_meta_->i->move_speed();
|
||||
speed *= 1 + GetAbility()->GetAttrRate(kHAT_Speed);
|
||||
return speed;
|
||||
}
|
||||
|
||||
@ -380,9 +381,7 @@ void Car::SetAttackDir(const a8::Vec2& attack_dir)
|
||||
|
||||
void Car::DecOil(float dec_oil)
|
||||
{
|
||||
if (driver_) {
|
||||
dec_oil *= 1 + driver_->GetAbility()->GetAttrRate(kHAT_CarOil);
|
||||
}
|
||||
dec_oil *= 1 + GetAbility()->GetAttrRate(kHAT_CarOil);
|
||||
cur_oil_ -= dec_oil;
|
||||
cur_oil_ = std::max(0.0f, cur_oil_);
|
||||
if (!HasOil()) {
|
||||
|
@ -160,12 +160,11 @@ enum HumanAttrType_e
|
||||
kHAT_WeaponReloadTime = 22,
|
||||
kHAT_WeaponExplosionRange = 23,
|
||||
kHAT_WeaponExplosionTime = 24,
|
||||
kHAT_GasDmg = 25,
|
||||
kHAT_PoisoningReduction = 25,
|
||||
kHAT_RescueTime = 26,
|
||||
kHAT_DrugTime = 27,
|
||||
kHAT_DrugEfficacy = 28,
|
||||
kHAT_CarOil = 29,
|
||||
kHAT_CarDmg = 30,
|
||||
kHAT_End
|
||||
};
|
||||
|
||||
|
@ -12,6 +12,9 @@ const int kInIceBuffId = 7008;
|
||||
const int kBeRecycleBuffId = 7009;
|
||||
const int kTraceBuffId = 7011;
|
||||
const int kInMountainTopBuffId = 7014;
|
||||
const int kDownBuffId = 7015;
|
||||
const int kPoisioningBuffId = 7016;
|
||||
const int kRescueBuffId = 7017;
|
||||
|
||||
enum BuffEffectType_e
|
||||
{
|
||||
@ -58,6 +61,11 @@ enum BuffEffectType_e
|
||||
kBET_SelectTargetWithSelfPos = 40, //已自己坐标为中心范围内选取目标,并且批量添加buff
|
||||
kBET_CondAddBuff = 41, //条件添加buff
|
||||
kBET_AddInventory = 42, //扩充库存
|
||||
kBET_Down = 43, //倒下
|
||||
kBET_Poisoning = 44, //中毒(毒圈中)
|
||||
kBET_Rescue = 45, //救援
|
||||
kBET_AddCarBuff = 46, //给载具加buff
|
||||
kBET_RemoveCarBuff = 47, //移除载具身上的buff
|
||||
|
||||
kBET_FollowMaster = 49, //跟随主人
|
||||
kBET_ThroughWall = 50, //穿墙
|
||||
|
@ -1200,11 +1200,15 @@ void Creature::UpdatePoisoning()
|
||||
}
|
||||
bool need_notify = poisoning_time > 1000;
|
||||
while (poisoning_time > 1000) {
|
||||
float dmg = 0;
|
||||
if (room->GetGasData().is_last_gas) {
|
||||
DecHP(room->GetGasData().new_area_meta->i->hurt(), VP_SafeArea, TEXT("battle_server_killer_gas", "毒圈"), VW_SafeArea);
|
||||
dmg = room->GetGasData().new_area_meta->i->hurt();
|
||||
} else {
|
||||
DecHP(room->GetGasData().old_area_meta->i->hurt(), VP_SafeArea, TEXT("battle_server_killer_gas", "毒圈"), VW_SafeArea);
|
||||
dmg = room->GetGasData().old_area_meta->i->hurt();
|
||||
}
|
||||
dmg *= 1 + GetAbility()->GetAttrRate(kHAT_PoisoningReduction);
|
||||
dmg = std::max(10.0f, dmg);
|
||||
DecHP(dmg, VP_SafeArea, TEXT("battle_server_killer_gas", "毒圈"), VW_SafeArea);
|
||||
if (dead) {
|
||||
poisoning_time = 0;
|
||||
break;
|
||||
|
@ -3012,7 +3012,7 @@ void Human::ProcUseItemAction()
|
||||
switch (action_item_id) {
|
||||
case IS_HEALTHKIT:
|
||||
{
|
||||
AddHp(item_meta->i->heal());
|
||||
AddHp(item_meta->i->heal() * (1 + GetAbility()->GetAttrRate(kHAT_DrugEfficacy)));
|
||||
DecInventory(item_meta->i->_inventory_slot(), 1);
|
||||
GetTrigger()->UseItemAction(action_item_id);
|
||||
}
|
||||
|
@ -320,53 +320,32 @@ void Player::UpdateUseItemIdx()
|
||||
return;
|
||||
}
|
||||
if (use_item_idx >= 0 && use_item_idx < IS_END) {
|
||||
switch (use_item_idx) {
|
||||
case IS_HEALTHKIT:
|
||||
{
|
||||
MetaData::Equip* item_meta = MetaMgr::Instance()->GetEquipBySlotId(use_item_idx);
|
||||
if (item_meta) {
|
||||
MetaData::Equip* item_meta = MetaMgr::Instance()->GetEquipBySlotId(use_item_idx);
|
||||
if (item_meta) {
|
||||
int use_time = item_meta->i->use_time();
|
||||
switch (use_item_idx) {
|
||||
case IS_HEALTHKIT:
|
||||
case IS_PAIN_KILLER:
|
||||
case IS_SHEN_BAO:
|
||||
{
|
||||
use_time -= GetAbility()->GetAttrAbs(kHAT_DrugTime);
|
||||
use_time = std::max(1000, use_time);
|
||||
StartAction(
|
||||
AT_UseItem,
|
||||
item_meta->i->use_time(),
|
||||
use_time,
|
||||
use_item_idx,
|
||||
0
|
||||
);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case IS_PAIN_KILLER:
|
||||
{
|
||||
MetaData::Equip* item_meta = MetaMgr::Instance()->GetEquipBySlotId(use_item_idx);
|
||||
if (item_meta) {
|
||||
StartAction(
|
||||
AT_UseItem,
|
||||
item_meta->i->use_time(),
|
||||
use_item_idx,
|
||||
0
|
||||
);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case IS_SHEN_BAO:
|
||||
{
|
||||
MetaData::Equip* item_meta = MetaMgr::Instance()->GetEquipBySlotId(use_item_idx);
|
||||
if (item_meta) {
|
||||
StartAction(
|
||||
AT_UseItem,
|
||||
item_meta->i->use_time(),
|
||||
use_item_idx,
|
||||
0
|
||||
);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
break;
|
||||
default:
|
||||
{
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
GetTrigger()->UseItemAction(use_item_idx);
|
||||
}
|
||||
GetTrigger()->UseItemAction(use_item_idx);
|
||||
}
|
||||
use_item_idx = 0;
|
||||
use_item = false;
|
||||
@ -800,15 +779,18 @@ void Player::HumanInteraction(Human* hum)
|
||||
if (hum->GetActionType() == AT_Rescue) {
|
||||
return;
|
||||
}
|
||||
int downed_relive_time = MetaMgr::Instance()->GetSysParamAsInt("downed_relive_time") * 1000;
|
||||
downed_relive_time -= GetAbility()->GetAttrAbs(kHAT_RescueTime);
|
||||
downed_relive_time = std::max(1000, downed_relive_time);
|
||||
hum->StartAction(
|
||||
AT_Rescue,
|
||||
MetaMgr::Instance()->GetSysParamAsInt("downed_relive_time") * 1000,
|
||||
downed_relive_time,
|
||||
room->GetFrameNo(),
|
||||
GetUniId()
|
||||
);
|
||||
StartAction(
|
||||
AT_Relive,
|
||||
MetaMgr::Instance()->GetSysParamAsInt("downed_relive_time") * 1000,
|
||||
downed_relive_time,
|
||||
room->GetFrameNo(),
|
||||
hum->GetUniId()
|
||||
);
|
||||
|
Loading…
x
Reference in New Issue
Block a user