-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path화계대미지.cpp
68 lines (63 loc) · 1.72 KB
/
화계대미지.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/**
화계 피해량 계산
@param[out] damage 대미지 정보
@param unit 부대
@param target 목표
@param critical 크리티컬
*/
void PK_화계대미지(__damage damage, Unit unit, HexObject target, bool critical)
{
Force target_force(target.getForceId());
int atk;
// 목표오브젝트가 부대
if (target.isInstance(kTypeIdUnit))
{
atk = 300;
damage.병력피해량 = atk + rand(200);
}
// 목표오브젝트가 건물
else
{
atk = 100;
damage.내구피해량 = atk + rand(50);
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
/*
if (isalive(target_force) && target.hasTech(기교_폭약연성))
{
damage.병력피해량 = damage.병력피해량 + atk;
damage.공격기교 = 기교_폭약연성;
}
*/
if (기타xml().폭약연성버그수정 ? isalive(unit) && unit.hasTech(기교_폭약연성) : isalive(target_force) && target.hasTech(기교_폭약연성))
{
damage.병력피해량 = damage.병력피해량 + atk;
damage.공격기교 = 기교_폭약연성;
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// 화신 특기를 보유중이면 대미지 2배
if (isalive(unit) && unit.hasSkill(특기_화신))
{
damage.병력피해량 = damage.병력피해량 * 2;
damage.공격특기 = 특기_화신;
}
// 목표오브젝트가 등갑 특기를 보유중이면 대미지 2배
if (target.hasSkill(특기_등갑))
{
damage.병력피해량 = damage.병력피해량 * 2;
damage.방어특기 = 특기_등갑;
}
// 목표오브젝트가 화신 특기를 보유중이면 무효
else if (target.hasSkill(특기_화신))
{
damage.병력피해량 = 0;
damage.방어특기 = 특기_화신;
}
// 회복중인 제방일 경우 무효
if (isinstance(target, kTypeIdBuilding))
{
Building building(target);
if (building.시설 == 시설_제방 && !building.건설완료)
damage.내구피해량 = 0;
}
}