|
|
@@ -489,148 +489,6 @@ static void loadRandomArtifact(CRandomGenerator & rand, CVisitInfo & info, int t
|
|
|
info.reward.artifacts.push_back(artID);
|
|
|
}
|
|
|
|
|
|
-CGPickable::CGPickable()
|
|
|
-{
|
|
|
- visitMode = VISIT_UNLIMITED;
|
|
|
- selectMode = SELECT_PLAYER;
|
|
|
-}
|
|
|
-
|
|
|
-void CGPickable::initObj(CRandomGenerator & rand)
|
|
|
-{
|
|
|
- blockVisit = true;
|
|
|
- switch(ID)
|
|
|
- {
|
|
|
- case Obj::CAMPFIRE:
|
|
|
- {
|
|
|
- int givenRes = rand.nextInt(5);
|
|
|
- int givenAmm = rand.nextInt(4, 6);
|
|
|
-
|
|
|
- info.resize(1);
|
|
|
- info[0].reward.resources[givenRes] = givenAmm;
|
|
|
- info[0].reward.resources[Res::GOLD]= givenAmm * 100;
|
|
|
- info[0].message.addTxt(MetaString::ADVOB_TXT,23);
|
|
|
- info[0].reward.removeObject = true;
|
|
|
- break;
|
|
|
- }
|
|
|
- case Obj::FLOTSAM:
|
|
|
- {
|
|
|
- int type = rand.nextInt(3);
|
|
|
- switch(type)
|
|
|
- {
|
|
|
- case 0:
|
|
|
- info.resize(1);
|
|
|
- info[0].message.addTxt(MetaString::ADVOB_TXT, 51);
|
|
|
- info[0].reward.removeObject = true;
|
|
|
- break;
|
|
|
- case 1:
|
|
|
- {
|
|
|
- info.resize(1);
|
|
|
- info[0].reward.resources[Res::WOOD] = 5;
|
|
|
- info[0].message.addTxt(MetaString::ADVOB_TXT, 52);
|
|
|
- info[0].reward.removeObject = true;
|
|
|
- break;
|
|
|
- }
|
|
|
- case 2:
|
|
|
- {
|
|
|
- info.resize(1);
|
|
|
- info[0].reward.resources[Res::WOOD] = 5;
|
|
|
- info[0].reward.resources[Res::GOLD] = 200;
|
|
|
- info[0].message.addTxt(MetaString::ADVOB_TXT, 53);
|
|
|
- info[0].reward.removeObject = true;
|
|
|
- break;
|
|
|
- }
|
|
|
- case 3:
|
|
|
- {
|
|
|
- info.resize(1);
|
|
|
- info[0].reward.resources[Res::WOOD] = 10;
|
|
|
- info[0].reward.resources[Res::GOLD] = 500;
|
|
|
- info[0].message.addTxt(MetaString::ADVOB_TXT, 54);
|
|
|
- info[0].reward.removeObject = true;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- case Obj::SEA_CHEST:
|
|
|
- {
|
|
|
- int hlp = rand.nextInt(99);
|
|
|
- if(hlp < 20)
|
|
|
- {
|
|
|
- info.resize(1);
|
|
|
- info[0].message.addTxt(MetaString::ADVOB_TXT, 116);
|
|
|
- info[0].reward.removeObject = true;
|
|
|
- }
|
|
|
- else if(hlp < 90)
|
|
|
- {
|
|
|
- info.resize(1);
|
|
|
- info[0].reward.resources[Res::GOLD] = 1500;
|
|
|
- info[0].message.addTxt(MetaString::ADVOB_TXT, 118);
|
|
|
- info[0].reward.removeObject = true;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- info.resize(1);
|
|
|
- loadRandomArtifact(rand, info[0], 100, 0, 0, 0);
|
|
|
- info[0].reward.resources[Res::GOLD] = 1000;
|
|
|
- info[0].message.addTxt(MetaString::ADVOB_TXT, 117);
|
|
|
- info[0].message.addReplacement(MetaString::ART_NAMES, info[0].reward.artifacts.back());
|
|
|
- info[0].reward.removeObject = true;
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- case Obj::SHIPWRECK_SURVIVOR:
|
|
|
- {
|
|
|
- info.resize(1);
|
|
|
- loadRandomArtifact(rand, info[0], 55, 20, 20, 5);
|
|
|
- info[0].message.addTxt(MetaString::ADVOB_TXT, 125);
|
|
|
- info[0].message.addReplacement(MetaString::ART_NAMES, info[0].reward.artifacts.back());
|
|
|
- info[0].reward.removeObject = true;
|
|
|
- }
|
|
|
- break;
|
|
|
- case Obj::TREASURE_CHEST:
|
|
|
- {
|
|
|
- int hlp = rand.nextInt(99);
|
|
|
- if(hlp >= 95)
|
|
|
- {
|
|
|
- info.resize(1);
|
|
|
- loadRandomArtifact(rand, info[0], 100, 0, 0, 0);
|
|
|
- info[0].message.addTxt(MetaString::ADVOB_TXT,145);
|
|
|
- info[0].message.addReplacement(MetaString::ART_NAMES, info[0].reward.artifacts.back());
|
|
|
- info[0].reward.removeObject = true;
|
|
|
- return;
|
|
|
- }
|
|
|
- else if (hlp >= 65)
|
|
|
- {
|
|
|
- onSelect.addTxt(MetaString::ADVOB_TXT,146);
|
|
|
- info.resize(2);
|
|
|
- info[0].reward.resources[Res::GOLD] = 2000;
|
|
|
- info[1].reward.gainedExp = 1500;
|
|
|
- info[0].reward.removeObject = true;
|
|
|
- info[1].reward.removeObject = true;
|
|
|
- }
|
|
|
- else if(hlp >= 33)
|
|
|
- {
|
|
|
- onSelect.addTxt(MetaString::ADVOB_TXT,146);
|
|
|
- info.resize(2);
|
|
|
- info[0].reward.resources[Res::GOLD] = 1500;
|
|
|
- info[1].reward.gainedExp = 1000;
|
|
|
- info[0].reward.removeObject = true;
|
|
|
- info[1].reward.removeObject = true;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- onSelect.addTxt(MetaString::ADVOB_TXT,146);
|
|
|
- info.resize(2);
|
|
|
- info[0].reward.resources[Res::GOLD] = 1000;
|
|
|
- info[1].reward.gainedExp = 500;
|
|
|
- info[0].reward.removeObject = true;
|
|
|
- info[1].reward.removeObject = true;
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
CGBonusingObject::CGBonusingObject()
|