CvMinorCivAI::GetPersonalityQuestBias(MinorCivQuestTypes)
- Defined in
- CvMinorCivAI.cpp, line 4671
- Class
- CvMinorCivAI
- Hook name
CivHooks::CvMinorCivAI_GetPersonalityQuestBias
Hooks
static bool BeforeCvMinorCivAI_GetPersonalityQuestBias(CvMinorCivAI* self, MinorCivQuestTypes eQuest, int& result);static void AfterCvMinorCivAI_GetPersonalityQuestBias(CvMinorCivAI* self, MinorCivQuestTypes eQuest, int& result);static int ReplaceCvMinorCivAI_GetPersonalityQuestBias(int (*original)(CvMinorCivAI*, MinorCivQuestTypes), CvMinorCivAI* self, MinorCivQuestTypes eQuest);CivRegisterBefore<CivHooks::CvMinorCivAI_GetPersonalityQuestBias>(host, &BeforeCvMinorCivAI_GetPersonalityQuestBias);CivRegisterAfter<CivHooks::CvMinorCivAI_GetPersonalityQuestBias>(host, &AfterCvMinorCivAI_GetPersonalityQuestBias);CivRegisterReplace<CivHooks::CvMinorCivAI_GetPersonalityQuestBias>(host, &ReplaceCvMinorCivAI_GetPersonalityQuestBias);
Code
4670/// How more or less likely is this minor to offer a particular quest type based on its personality?4671int CvMinorCivAI::GetPersonalityQuestBias(MinorCivQuestTypes eQuest)4672{4673 // Multiply by 10 to give us some more fidelity. We'll remove it at the bottom4674#if defined(MOD_EVENTS_QUESTS)4675 int iFidelity = 10;4676 int iCount = iFidelity * /*10*/ GC.getMINOR_CIV_QUEST_WEIGHT_DEFAULT();4677#else4678 int iCount = 10 * /*10*/ GC.getMINOR_CIV_QUEST_WEIGHT_DEFAULT();4679#endif46804681 MinorCivPersonalityTypes ePersonality = GetPersonality();4682 MinorCivTraitTypes eTrait = GetTrait();46834684 // ******************4685 // Personal Quests4686 // ******************46874688#if defined(MOD_EVENTS_QUESTS)4689 CvQuestInfo* pQuestInfo = GC.getQuestInfo(eQuest);4690 4691 if (MOD_EVENTS_QUESTS && pQuestInfo) {4692 int iBiasPersonality = 100;4693 int iBiasTrait = 100;4694 4695 if(ePersonality == MINOR_CIV_PERSONALITY_FRIENDLY)4696 {4697 iBiasPersonality = pQuestInfo->getBiasFriendly();4698 }4699 else if(ePersonality == MINOR_CIV_PERSONALITY_NEUTRAL)4700 {4701 iBiasPersonality = pQuestInfo->getBiasNeutral();4702 }4703 else if(ePersonality == MINOR_CIV_PERSONALITY_HOSTILE)4704 {4705 iBiasPersonality = pQuestInfo->getBiasHostile();4706 }4707 else if(ePersonality == MINOR_CIV_PERSONALITY_IRRATIONAL)4708 {4709 iBiasPersonality = pQuestInfo->getBiasIrrational();4710 }4711 4712 if(eTrait == MINOR_CIV_TRAIT_MARITIME)4713 {4714 iBiasTrait = pQuestInfo->getBiasMaritime();4715 }4716 else if(eTrait == MINOR_CIV_TRAIT_MERCANTILE)4717 {4718 iBiasTrait = pQuestInfo->getBiasMercantile();4719 }4720 else if(eTrait == MINOR_CIV_TRAIT_CULTURED)4721 {4722 iBiasTrait = pQuestInfo->getBiasCultured();4723 }4724 else if(eTrait == MINOR_CIV_TRAIT_RELIGIOUS)4725 {4726 iBiasTrait = pQuestInfo->getBiasReligious();4727 }4728 else if(eTrait == MINOR_CIV_TRAIT_MILITARISTIC)4729 {4730 iBiasTrait = pQuestInfo->getBiasMilitaristic();4731 }47324733 iCount = iCount * iBiasPersonality / 100 * iBiasTrait / 100;4734 } else {4735#endif4736 // ROUTE4737 if(eQuest == MINOR_CIV_QUEST_ROUTE)4738 {4739 if(ePersonality == MINOR_CIV_PERSONALITY_FRIENDLY) // Friendly4740 {4741 iCount *= /*200*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_FRIENDLY_ROUTE();4742 iCount /= 100;4743 }4744 if(ePersonality == MINOR_CIV_PERSONALITY_HOSTILE) // Hostile4745 {4746 iCount *= /*20*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_HOSTILE_ROUTE();4747 iCount /= 100;4748 }4749 if(eTrait == MINOR_CIV_TRAIT_MARITIME) // Maritime4750 {4751 iCount *= /*120*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MARITIME_ROUTE();4752 iCount /= 100;4753 }4754 if(eTrait == MINOR_CIV_TRAIT_MERCANTILE)4755 {4756 iCount *= /*150*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MERCANTILE_ROUTE();4757 iCount /= 100;4758 }4759 }47604761 // CONNECT A RESOURCE4762 else if(eQuest == MINOR_CIV_QUEST_CONNECT_RESOURCE)4763 {4764 if(eTrait == MINOR_CIV_TRAIT_MARITIME) // Maritime4765 {4766 iCount *= /*200*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MARITIME_CONNECT_RESOURCE();4767 iCount /= 100;4768 }4769 if(eTrait == MINOR_CIV_TRAIT_MERCANTILE)4770 {4771 iCount *= /*300*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MERCANTILE_CONNECT_RESOURCE();4772 iCount /= 100;4773 }4774 }47754776 // CONSTRUCT A WONDER4777 else if(eQuest == MINOR_CIV_QUEST_CONSTRUCT_WONDER)4778 {4779 if(eTrait == MINOR_CIV_TRAIT_CULTURED) // Cultured4780 {4781 iCount *= /*300*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_CULTURED_CONSTRUCT_WONDER();4782 iCount /= 100;4783 }4784 }47854786 // GREAT PERSON4787 else if(eQuest == MINOR_CIV_QUEST_GREAT_PERSON)4788 {4789 if(eTrait == MINOR_CIV_TRAIT_CULTURED) // Cultured4790 {4791 iCount *= /*300*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_CULTURED_GREAT_PERSON();4792 iCount /= 100;4793 }4794 }47954796 // KILL ANOTHER CITY STATE4797 else if(eQuest == MINOR_CIV_QUEST_KILL_CITY_STATE)4798 {4799 if(eTrait == MINOR_CIV_TRAIT_MILITARISTIC) // Militaristic4800 {4801 iCount *= /*200*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MILITARISTIC_KILL_CITY_STATE();4802 iCount /= 100;4803 }4804 if(ePersonality == MINOR_CIV_PERSONALITY_HOSTILE) // Hostile4805 {4806 iCount *= /*200*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_HOSTILE_KILL_CITY_STATE();4807 iCount /= 100;4808 }4809 if(ePersonality == MINOR_CIV_PERSONALITY_NEUTRAL) // Neutral4810 {4811 iCount *= /*40*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_NEUTRAL_KILL_CITY_STATE();4812 iCount /= 100;4813 }4814 }48154816 // FIND ANOTHER PLAYER4817 else if(eQuest == MINOR_CIV_QUEST_FIND_PLAYER)4818 {4819 if(eTrait == MINOR_CIV_TRAIT_MARITIME) // Maritime4820 {4821 iCount *= /*300*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MARITIME_FIND_PLAYER();4822 iCount /= 100;4823 }4824 if(eTrait == MINOR_CIV_TRAIT_MERCANTILE)4825 {4826 iCount *= /*200*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MERCANTILE_FIND_PLAYER();4827 iCount /= 100;4828 }4829 }48304831 // FIND NATURAL WONDER4832 else if(eQuest == MINOR_CIV_QUEST_FIND_NATURAL_WONDER)4833 {4834 if(eTrait == MINOR_CIV_TRAIT_MILITARISTIC) // Militaristic4835 {4836 iCount *= /*50*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MILITARISTIC_FIND_NATURAL_WONDER();4837 iCount /= 100;4838 }4839 if(ePersonality == MINOR_CIV_PERSONALITY_HOSTILE) // Hostile4840 {4841 iCount *= /*30*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_HOSTILE_FIND_NATURAL_WONDER();4842 iCount /= 100;4843 }4844 }48454846 // GOLD GIFT4847 else if(eQuest == MINOR_CIV_QUEST_GIVE_GOLD)4848 {4849 //antonjs: consider: split quest bias into two categories, so that we can guarantee a support quest when a CS is bullied recently48504851 if(eTrait == MINOR_CIV_TRAIT_MILITARISTIC) // We are tough, we don't need your charity4852 {4853 iCount *= /*200*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MILITARISTIC_GIVE_GOLD();4854 iCount /= 100;4855 }4856 else if(eTrait == MINOR_CIV_TRAIT_MERCANTILE) // Money is the answer to everything!4857 {4858 iCount *= /*350*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MERCANTILE_GIVE_GOLD();4859 iCount /= 100;4860 }4861 else4862 {4863 iCount *= /*300*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_OTHER_GIVE_GOLD();4864 iCount /= 100;4865 }4866 }48674868 // PLEDGE TO PROTECT4869 else if(eQuest == MINOR_CIV_QUEST_PLEDGE_TO_PROTECT)4870 {4871 if(eTrait == MINOR_CIV_TRAIT_MILITARISTIC) // We are tough, we don't need your charity4872 {4873 iCount *= /*200*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MILITARISTIC_PLEDGE_TO_PROTECT();4874 iCount /= 100;4875 }4876 else if(eTrait == MINOR_CIV_TRAIT_CULTURED) // Military? We don't have one of those!4877 {4878 iCount *= /*350*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_CULTURED_PLEDGE_TO_PROTECT();4879 iCount /= 100;4880 }4881 else4882 {4883 iCount *= /*300*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_OTHER_PLEDGE_TO_PROTECT();4884 iCount /= 100;4885 }4886 }48874888 // Bully target City-State4889 else if(eQuest == MINOR_CIV_QUEST_BULLY_CITY_STATE)4890 {4891 if(ePersonality == MINOR_CIV_PERSONALITY_HOSTILE)4892 {4893 iCount *= 200; //antonjs: todo: XML4894 iCount /= 100;4895 }4896 else if(ePersonality == MINOR_CIV_PERSONALITY_IRRATIONAL)4897 {4898 iCount *= 150; //antonjs: todo: xml4899 iCount /= 100;4900 }4901 else if(ePersonality == MINOR_CIV_PERSONALITY_FRIENDLY)4902 {4903 iCount *= 30; //antonjs: todo: xml4904 iCount /= 100;4905 }4906 }49074908 // Denounce target Major4909 else if(eQuest == MINOR_CIV_QUEST_DENOUNCE_MAJOR)4910 {4911 if(eTrait == MINOR_CIV_TRAIT_RELIGIOUS)4912 {4913 iCount *= 250; //antonjs: todo: xml4914 iCount /= 100;4915 }4916 else if(eTrait == MINOR_CIV_TRAIT_MARITIME)4917 {4918 iCount *= 200; //antonjs: todo: xml4919 iCount /= 100;4920 }4921 else4922 {4923 iCount *= 150; //antonjs: todo: xml4924 iCount /= 100;4925 }4926 }49274928 // Spread your religion to us4929 else if(eQuest == MINOR_CIV_QUEST_SPREAD_RELIGION)4930 {4931 if(eTrait == MINOR_CIV_TRAIT_RELIGIOUS)4932 {4933 iCount *= 300; //antonjs: todo: xml4934 iCount /= 100;4935 }4936 }49374938 // Trade Route4939 else if(eQuest == MINOR_CIV_QUEST_TRADE_ROUTE)4940 {4941 if(eTrait == MINOR_CIV_TRAIT_MARITIME)4942 {4943 iCount *= 200; //xml4944 iCount /= 100;4945 }4946 else if(eTrait == MINOR_CIV_TRAIT_MERCANTILE)4947 {4948 iCount *= 200; //xml4949 iCount /= 100;4950 }4951 }49524953 // ******************4954 // Global Quests4955 // ******************49564957 // CONTEST CULTURE4958 else if(eQuest == MINOR_CIV_QUEST_CONTEST_CULTURE)4959 {4960 if(eTrait == MINOR_CIV_TRAIT_CULTURED)4961 {4962 iCount *= 200; //antonjs: todo: XML4963 iCount /= 100;4964 }4965 }4966 // CONTEST FAITH4967 else if(eQuest == MINOR_CIV_QUEST_CONTEST_FAITH)4968 {4969 if(eTrait == MINOR_CIV_TRAIT_RELIGIOUS)4970 {4971 iCount *= 200; //antonjs: todo: XML4972 iCount /= 100;4973 }4974 else4975 {4976 iCount *= 50; //antonjs: todo: XML4977 iCount /= 100;4978 }4979 }4980 // CONTEST TECHS4981 else if(eQuest == MINOR_CIV_QUEST_CONTEST_TECHS)4982 {4983 if(eTrait == MINOR_CIV_TRAIT_RELIGIOUS)4984 {4985#if defined(MOD_BUGFIX_MINOR)4986 iCount *= 50; //antonjs: todo: XML4987#else4988 iCount += 50; //antonjs: todo: XML4989#endif4990 iCount /= 100;4991 }4992 }49934994 // KILL A CAMP4995 else if(eQuest == MINOR_CIV_QUEST_KILL_CAMP)4996 {4997 iCount *= 300;4998 iCount /= 100;49995000 if(eTrait == MINOR_CIV_TRAIT_MILITARISTIC) // Militaristic5001 {5002 iCount *= /*300*/ GC.getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MILITARISTIC_KILL_CAMP();5003 iCount /= 100;5004 }5005 }50065007 // Invest5008 else if(eQuest == MINOR_CIV_QUEST_INVEST)5009 {5010 if(eTrait == MINOR_CIV_TRAIT_MERCANTILE)5011 {5012 iCount *= 150; //antonjs: todo: XML5013 iCount /= 100;5014 }5015 }5016#if defined(MOD_EVENTS_QUESTS)5017 }5018#endif50195020#if defined(MOD_EVENTS_QUESTS)5021 return iCount / iFidelity;5022#else5023 return iCount / 10;5024#endif5025}
Calls
- CustomMods::isEVENTS_QUESTS()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_DEFAULT()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_CULTURED_CONSTRUCT_WONDER()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_CULTURED_GREAT_PERSON()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_CULTURED_PLEDGE_TO_PROTECT()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_FRIENDLY_ROUTE()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_HOSTILE_FIND_NATURAL_WONDER()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_HOSTILE_KILL_CITY_STATE()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_HOSTILE_ROUTE()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MARITIME_CONNECT_RESOURCE()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MARITIME_FIND_PLAYER()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MARITIME_ROUTE()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MERCANTILE_CONNECT_RESOURCE()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MERCANTILE_FIND_PLAYER()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MERCANTILE_GIVE_GOLD()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MERCANTILE_ROUTE()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MILITARISTIC_FIND_NATURAL_WONDER()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MILITARISTIC_GIVE_GOLD()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MILITARISTIC_KILL_CAMP()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MILITARISTIC_KILL_CITY_STATE()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_MILITARISTIC_PLEDGE_TO_PROTECT()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_NEUTRAL_KILL_CITY_STATE()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_OTHER_GIVE_GOLD()
- CvGlobals::getMINOR_CIV_QUEST_WEIGHT_MULTIPLIER_OTHER_PLEDGE_TO_PROTECT()
- CvGlobals::getQuestInfo(int)
- CvMinorCivAI::GetPersonality() const
- CvMinorCivAI::GetTrait() const
- CvQuestInfo::getBiasCultured() const
- CvQuestInfo::getBiasFriendly() const
- CvQuestInfo::getBiasHostile() const
- CvQuestInfo::getBiasIrrational() const
- CvQuestInfo::getBiasMaritime() const
- CvQuestInfo::getBiasMercantile() const
- CvQuestInfo::getBiasMilitaristic() const
- CvQuestInfo::getBiasNeutral() const
- CvQuestInfo::getBiasReligious() const