Commit bdbf19a2 authored by DailyShana's avatar DailyShana

add EFFECT_SET_BATTLE_ATTACK and EFFECT_SET_BATTLE_DEFENSE

parent 4b9e6dc0
...@@ -866,6 +866,22 @@ int32 card::get_defense() { ...@@ -866,6 +866,22 @@ int32 card::get_defense() {
temp.defense = -1; temp.defense = -1;
return def; return def;
} }
int32 card::get_battle_attack() {
effect_set eset;
filter_effect(EFFECT_SET_BATTLE_ATTACK, &eset);
if(eset.size())
return eset.get_last()->get_value(this);
else
return get_attack();
}
int32 card::get_battle_defense() {
effect_set eset;
filter_effect(EFFECT_SET_BATTLE_DEFENSE, &eset);
if(eset.size())
return eset.get_last()->get_value(this);
else
return get_defense();
}
// Level/Attribute/Race is available for: // Level/Attribute/Race is available for:
// 1. cards with original type TYPE_MONSTER or // 1. cards with original type TYPE_MONSTER or
// 2. cards with current type TYPE_MONSTER or // 2. cards with current type TYPE_MONSTER or
......
...@@ -210,6 +210,8 @@ public: ...@@ -210,6 +210,8 @@ public:
int32 get_attack(); int32 get_attack();
int32 get_base_defense(); int32 get_base_defense();
int32 get_defense(); int32 get_defense();
int32 get_battle_attack();
int32 get_battle_defense();
uint32 get_level(); uint32 get_level();
uint32 get_rank(); uint32 get_rank();
uint32 get_link(); uint32 get_link();
......
...@@ -448,6 +448,8 @@ inline effect_flag operator|(effect_flag flag1, effect_flag flag2) ...@@ -448,6 +448,8 @@ inline effect_flag operator|(effect_flag flag1, effect_flag flag2)
#define EFFECT_QP_ACT_IN_SET_TURN 359 #define EFFECT_QP_ACT_IN_SET_TURN 359
#define EFFECT_EXTRA_PENDULUM_SUMMON 360 #define EFFECT_EXTRA_PENDULUM_SUMMON 360
#define EFFECT_MATERIAL_LIMIT 361 #define EFFECT_MATERIAL_LIMIT 361
#define EFFECT_SET_BATTLE_ATTACK 362
#define EFFECT_SET_BATTLE_DEFENSE 363
#define EVENT_STARTUP 1000 #define EVENT_STARTUP 1000
#define EVENT_FLIP 1001 #define EVENT_FLIP 1001
......
...@@ -3288,7 +3288,7 @@ int32 field::process_damage_step(uint16 step, uint32 new_attack) { ...@@ -3288,7 +3288,7 @@ int32 field::process_damage_step(uint16 step, uint32 new_attack) {
return TRUE; return TRUE;
} }
void field::calculate_battle_damage(effect** pdamchange, card** preason_card, uint8* battle_destroyed) { void field::calculate_battle_damage(effect** pdamchange, card** preason_card, uint8* battle_destroyed) {
uint32 aa = core.attacker->get_attack(), ad = core.attacker->get_defense(); uint32 aa = core.attacker->get_battle_attack(), ad = core.attacker->get_battle_defense();
uint32 da = 0, dd = 0, a = aa, d; uint32 da = 0, dd = 0, a = aa, d;
uint8 pa = core.attacker->current.controler, pd; uint8 pa = core.attacker->current.controler, pd;
uint8 damp = 0; uint8 damp = 0;
...@@ -3303,8 +3303,8 @@ void field::calculate_battle_damage(effect** pdamchange, card** preason_card, ui ...@@ -3303,8 +3303,8 @@ void field::calculate_battle_damage(effect** pdamchange, card** preason_card, ui
a = ad; a = ad;
} }
if(core.attack_target) { if(core.attack_target) {
da = core.attack_target->get_attack(); da = core.attack_target->get_battle_attack();
dd = core.attack_target->get_defense(); dd = core.attack_target->get_battle_defense();
pd = core.attack_target->current.controler; pd = core.attack_target->current.controler;
if(core.attack_target->is_position(POS_ATTACK)) { if(core.attack_target->is_position(POS_ATTACK)) {
d = da; d = da;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment