Scripts/VioletHold: Properly fixed achievement Defenseless

This commit is contained in:
Lopin
2011-06-24 08:20:56 +02:00
parent 08d5dd5a65
commit 7954d9a099
4 changed files with 34 additions and 7 deletions
@@ -159,7 +159,28 @@ public:
};
class achievement_defenseless : public AchievementCriteriaScript
{
public:
achievement_defenseless() : AchievementCriteriaScript("achievement_defenseless")
{
}
bool OnCheck(Player* /*player*/, Unit* target)
{
InstanceScript* instance = target->GetInstanceScript();
if (!instance)
return false;
if (!instance->GetData(DATA_DEFENSELESS))
return false;
return true;
}
};
void AddSC_boss_cyanigosa()
{
new boss_cyanigosa();
new achievement_defenseless();
}
@@ -93,15 +93,12 @@ enum Yells
{
CYANIGOSA_SAY_SPAWN = -1608005
};
enum Spells
{
CYANIGOSA_SPELL_TRANSFORM = 58668,
CYANIGOSA_BLUE_AURA = 47759,
};
enum Achievements
{
ACHIEV_DEFENSELESS = 1816
};
class instance_violet_hold : public InstanceMapScript
{
@@ -165,6 +162,7 @@ public:
bool bWiped;
bool bIsDoorSpellCasted;
bool bCrystalActivated;
bool defenseless;
std::list<uint8> NpcAtDoorCastingList;
@@ -214,6 +212,7 @@ public:
bActive = false;
bIsDoorSpellCasted = false;
bCrystalActivated = false;
defenseless = true;
uiMainEventPhase = NOT_STARTED;
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
@@ -334,8 +333,6 @@ public:
uiMainEventPhase = DONE;
if (GameObject* pMainDoor = instance->GetGameObject(uiMainDoor))
pMainDoor->SetGoState(GO_STATE_ACTIVE);
if (!bCrystalActivated && uiDoorIntegrity == 100)
DoCompleteAchievement(ACHIEV_DEFENSELESS);
}
break;
case DATA_WAVE_COUNT:
@@ -350,6 +347,7 @@ public:
break;
case DATA_DOOR_INTEGRITY:
uiDoorIntegrity = data;
defenseless = false;
DoUpdateWorldState(WORLD_STATE_VH_PRISON_STATE, uiDoorIntegrity);
break;
case DATA_NPC_PRESENCE_AT_DOOR_ADD:
@@ -432,6 +430,7 @@ public:
case DATA_FIRST_BOSS: return uiFirstBoss;
case DATA_SECOND_BOSS: return uiSecondBoss;
case DATA_MAIN_EVENT_PHASE: return uiMainEventPhase;
case DATA_DEFENSELESS: return defenseless ? 1 : 0;
}
return 0;
@@ -52,7 +52,8 @@ enum Data
DATA_FIRST_BOSS,
DATA_SECOND_BOSS,
DATA_ACTIVATE_CRYSTAL,
DATA_MAIN_EVENT_PHASE
DATA_MAIN_EVENT_PHASE,
DATA_DEFENSELESS,
};
enum Data64