mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	- Made sure that stack artifacts will not spawn when they are turned off
- Description for "Spell-like attack"
This commit is contained in:
		| @@ -776,13 +776,20 @@ void CArtHandler::clearHlpLists() | ||||
| 	relics.clear(); | ||||
| } | ||||
|  | ||||
| bool CArtHandler::legalArtifact(int id) | ||||
| { | ||||
| 	return (artifacts[id]->possibleSlots[ArtBearer::HERO].size() || | ||||
| 			artifacts[id]->possibleSlots[ArtBearer::COMMANDER].size() && VLC->modh->modules.COMMANDERS) || | ||||
| 			(artifacts[id]->possibleSlots[ArtBearer::CREATURE].size() && VLC->modh->modules.STACK_ARTIFACT); | ||||
| } | ||||
|  | ||||
| void CArtHandler::initAllowedArtifactsList(const std::vector<ui8> &allowed) | ||||
| { | ||||
| 	allowedArtifacts.clear(); | ||||
| 	clearHlpLists(); | ||||
| 	for (int i=0; i<144; ++i) //yes, 144 | ||||
| 	{ | ||||
| 		if (allowed[i]) | ||||
| 		if (allowed[i] && legalArtifact(i)) | ||||
| 			allowedArtifacts.push_back(artifacts[i]); | ||||
| 	} | ||||
| 	if (VLC->modh->modules.COMMANDERS) //allow all commander artifacts for testing | ||||
| @@ -798,8 +805,7 @@ void CArtHandler::initAllowedArtifactsList(const std::vector<ui8> &allowed) | ||||
| 			allowedArtifacts.push_back(artifacts[i]); | ||||
| 		 else //check if active modules allow artifact to be every used | ||||
| 		 { | ||||
| 			 if ((artifacts[i]->possibleSlots[ArtBearer::COMMANDER].size() && VLC->modh->modules.COMMANDERS) || | ||||
| 				 (artifacts[i]->possibleSlots[ArtBearer::CREATURE].size() && VLC->modh->modules.STACK_ARTIFACT)) | ||||
| 			 if (legalArtifact(i)) | ||||
| 				 allowedArtifacts.push_back(artifacts[i]); | ||||
| 			 //keep im mind that artifact can be worn by more than one type of bearer | ||||
| 		 } | ||||
|   | ||||
| @@ -243,6 +243,7 @@ public: | ||||
| 	void clearHlpLists(); | ||||
| 	ui16 getRandomArt (int flags); | ||||
| 	ui16 getArtSync (ui32 rand, int flags); | ||||
| 	bool CArtHandler::legalArtifact(int id); | ||||
| 	void getAllowedArts(std::vector<ConstTransitivePtr<CArtifact> > &out, std::vector<CArtifact*> *arts, int flag); | ||||
| 	void getAllowed(std::vector<ConstTransitivePtr<CArtifact> > &out, int flags); | ||||
| 	void erasePickedArt (TArtifactInstanceID id); | ||||
|   | ||||
| @@ -646,6 +646,11 @@ std::string CStackInstance::bonusToString(Bonus *bonus, bool description) const | ||||
| 					boost::algorithm::replace_first(text, "%s", VLC->spellh->spells[bonus->subtype]->name); | ||||
| 					break; | ||||
| 				} | ||||
| 				case Bonus::SPELL_LIKE_ATTACK: | ||||
| 				{ | ||||
| 					boost::algorithm::replace_first(text, "%s", VLC->spellh->spells[bonus->subtype]->name); | ||||
| 					break; | ||||
| 				} | ||||
| 				default: | ||||
| 					{}//TODO: allow custom bonus types... someday, somehow | ||||
| 			} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user