Yapılmışı var zaten hem de bir yıl önce ( Link )
Buna şöyle bir örnek vererek destekleyebilirim. Bu dün yaptığım bir savaştan:
Öyle god mode olarak değil ama gelecek patchlerden birisinde emir verirken zamanın yavaşlaması özelliği gelecek ( şuradan görebilirsin https://drive.google.com/file/d/1_DZ-drVbC4r8pPpJLbrHb1I1x8xFwKxj/view )
Bu bahsettiğin RTS modu. İndirip oynayabilirsin ama oyunun genel şeması içinde olmaması gerektiğini düşünüyorum ben de.
Bu normal bir şey zaten. Yani düşündüğün zaman gerçekte savaş yönetsen de aşağı yukarı aynı soruna sahip olursun. Düzgün yönetebilmek için tepeyi ele geçirmen gerekir bu da tepeleri önemli kılar.
Bu zaten askerleri sıralamana göre ilerliyor olması lazım. Bir ara boş anıma gelirse koda bakarım ama hatırladığım kadarıyla üstten başlayarak ekliyordu askerleri. Yani eğer ilk dalganın atlı olmasını istiyorsan ve atlı sayın total sayıyı geçiyorsa, kendinden sonra atlıları üste eklediğin zaman ilk atlılar savaş alanında doğacak. Fakat bu "asker çeşidi" şeklinde de ilerliyor olabilir, yani Vlandian Knight sayın başlı başına 100 ise o zaman Vlandian Knight içinden bir yüzdeyi alıp sonra ikinci unitten alıyor başka bir yüzde olabilir.
Devlet yerine ordu demeliydim orada karışıklık olmuş. Başka bir "ordu" diyeyim.
Oyun zaten şu an savaş alanındaki asker yoğunluğuna göre iki taraf arasında dinamik bir uzaklık belirliyor. Bunu zaten 100vs100 ile 10vs10 savaşlarda görebilirsin rahatlıkla. 10'a 10 olanlarda taraflar çok daha yakında başlıyor, savaş alanı/harita aynı bile olsa.
Zaten oyunun ilk saldırı sistemi bu şekilde. Mesela düşmanın 1000 askeri var senin 500, ve senin maksimum savaş alanındaki asker limitin 300 diyelim, bu durumda ilk spawn dalgasında senin 100 düşmanın ise 200 askeri deploy oluyor. Sonrasında gelen destekler de bu şekilde bu orana göre geliyor. Senin bahsettiğin şekilde tek dalga yapmak Bannerlord gibi bir oyuna uyacak bir şey değil. Çünkü senin ilk spawn olan 100 askerin belki Recruit olacak ama belki senin T5 100 unitin daha var ve eğer o 100lük adamlar savaşa girmiş olsa o zaman belki ilk dalgada kazanacaktın - fakat bahsettiğin sistemde bu imkansız. Eğer ilk üst limit askerler doğsun dersen bu sefer de gariplikler oluyor çünkü T1 bir atlı bazen duruma göre T3 piyadeden daha efektif olabiliyor vs gibi.
Fakat Total War oyunlarında destek ekip savaşa dahil olan ekstra bir devlet varsa o zaman oluyor. Oyunun asker limiti zaten settings kısmında seçiliyor. Yani sen ne yaparsan yap, ne kadar asker savaşa dahil edersen et, o üst limiti geçemiyorsun. O yüzden oyun hiçbir zaman senin ordunu bölmüyor, her zaman campaign haritasında ne varsa o spawn oluyor.
Bunun ticket ile çözülecek bir durumu yok çünkü bu "bug" olarak görülmüyor bence Taleworlds tarafından. Dizaynı bu şekilde oyunun. Dizaynın bu şekilde olması tahminimce orduların hızlı toparlanmasını sağlamak açısından yapılmış. Yani ilk dalga dağıldığı zaman destek ekiplerinin ona hızlı ulaşması için yakında doğması lazım çünkü haritanın köşesi çok uzak olabiliyor bazı durumlarda. Fakat şu anki çözüm de gayet saçma çünkü bahsettiğin gibi, resmen aksiyonun içine doğuyor askerler ve bu büyük denge sıkıntısı yaratıyor.
Turns out this was actually a side effect/bug from my mod lol () I thought they released it as a feature.. But at least this can show how nice and atmospheric it can be if they add it.
QoL changes are welcomed but calling any of these "a lot of work" seems like an exaggeration. Which particular "small" improvement do you think would take a lot of work?
I'm 95% sure that it's not based on renown. It's probably either checking if character is Hero or not ( any non-soldier character considered as hero ) or it's checking first if it's Hero and then checking if it's in any clan/kingdom ( which makes wanderer companions that are not hired considered to be non-noble )
As far as I know, no. Perhaps they added with this patch
Something like this might be good:
They can simply say "It wasn't fun" and announce that they won't add it ( but they have to announce that )
He can know stuff, but he can't know the exact plans/decisions/decision making/voting unless he is working on that personally or works as a game designer. I also know things about TW and Bannerlord which I can't share with you all. And in my case, it's a moral thing rather than a legal obligation. So he can't even say it unless he gets an "OK" from someone top and apparently, he didn't get OK since he is choosing the be vague. And in either way, that's not his job. Duh doesn't have to waste his time in the forum answering all these questions. They allegedly have community managers to do this exact stuff - yet, I don't see that community manager(s) in that thread where five bucks compiled every missing feature's fate.
Not sure what is your intention. Were you expecting them to hover over on screens and track these numbers in a short time of demo? They didn't show it in detail so you are also not able to speculate that it was "just a workshop". But I do consider it as more than just workshops when an official Taleworlds representative, who happens to be Community Manager at that time, says all these details. If you are saying that he lied just to do a PR stunt, that's another debate and should be discussed carefully.
Where do we see this? Because it doesn't seem to be inside the Security Calculation
public override ExplainedNumber CalculateSecurityChange(
Town town,
bool includeDescriptions = false)
{
ExplainedNumber explainedNumber = new ExplainedNumber(0.0f, includeDescriptions, (TextObject) null);
this.CalculateInfestedHideoutEffectsOnSecurity(town, ref explainedNumber);
this.CalculateRaidedVillageEffectsOnSecurity(town, ref explainedNumber);
this.CalculateUnderSiegeEffectsOnSecurity(town, ref explainedNumber);
this.CalculateProsperityEffectOnSecurity(town, ref explainedNumber);
this.CalculateGarrisonEffectsOnSecurity(town, ref explainedNumber);
this.CalculatePolicyEffectsOnSecurity(town, ref explainedNumber);
this.CalculateGovernorEffectsOnSecurity(town, ref explainedNumber);
this.CalculateProjectEffectsOnSecurity(town, ref explainedNumber);
this.CalculateIssueEffectsOnSecurity(town, ref explainedNumber);
this.CalculatePerkEffectsOnSecurity(town, ref explainedNumber);
this.CalculateSecurityDrift(town, ref explainedNumber);
return explainedNumber;
}
private void settlement_alley_after_battle_won_on_consequence(MenuCallbackArgs args)
{
if (this._currentCommonOwner.IsAlive)
ChangeRelationAction.ApplyRelationChangeBetweenHeroes(Hero.MainHero, this._currentCommonOwner, -4, true);
foreach (CommonArea commonArea in Settlement.CurrentSettlement.CommonAreas)
{
if (commonArea.Owner != null && commonArea.Owner != this._currentCommonOwner)
ChangeRelationAction.ApplyRelationChangeBetweenHeroes(Hero.MainHero, commonArea.Owner, 4, true);
}
if (Settlement.CurrentSettlement.OwnerClan.Leader != null && Settlement.CurrentSettlement.OwnerClan.Leader != Hero.MainHero)
{
ChangeRelationAction.ApplyPlayerRelation(Settlement.CurrentSettlement.OwnerClan.Leader, 2, true, true);
}
else
{
foreach (Hero notable in Settlement.CurrentSettlement.Notables)
{
if (notable != this._currentCommonOwner)
ChangeRelationAction.ApplyPlayerRelation(notable, 2, true, true);
}
}
if (this._currentCommonOwner.IsAlive)
this._waitedCommonArea.RestoreAlleyOwnerStateAfterBattle(this._currentCommonOwner);
this._currentCommonOwner = (Hero) null;
if (this._waitedCommonArea.CommonAreaPartyComponent != null)
this._waitedCommonArea.ClearArea(false);
this._waitedCommonArea = (CommonArea) null;
if (Hero.MainHero.CurrentSettlement.IsTown)
GameMenu.SwitchToMenu("town");
else
GameMenu.SwitchToMenu("village");
}
No? They are saying stopping gangs is helping the economy and stabilizing the city. Or having them are destabilizing the city. They are also saying that having criminal activity undermines the authority who owns the town ( which indicates it can affect their influence and disables their political power within the faction if they don't handle this well) and IF they find it out, it will impact your relationship. And how they will find it out? Based on their perks? Based on the amount you earn? Based on your companion's skills? Not mentioned but clearly what they had in mind was more than just a workshop mechanic.
Is there a thread where they say this? Because if I'm mistaken, since the beginning of EA, AI was always able to recruit randomly from other towns and villages without worrying about the owner. ( at least they were able to recruit within the same faction) I might be mistaken tho, don't remember much, it was one year ago after all. Nevertheless, it's certainly a weird choice to stop snowballing.
which makes it a suggestion. But your "intro" is too long for anyone to read or understand.
public void SetTargetPosition(Vec2 value)
{
MBAPI.IMBAgent.SetTargetPosition(this.GetPtr(), ref value);
}
Okay in here you switched the strategy I think. Because in previous post you said you were checking affected agent - not the affector agent. Or perhaps I misunderstood. But agreed, looking at affector agent stats is better than simply checking affected agent. Since affector knows its own "motive" better.
That's fine, but patching things with your own code grants you more flexibility on your analysis. For example,
ComputeBlowMagnitudeMelee
method in Mission is private and doesn't have any "event" that you can listen. So you can simply add something to it's Prefix or Postfix and get the exact same parameters that normal ComputeBlowMagnitudeMelee is getting. ( You need to check method signatures and stuff first, don't rely on what I posted, it's just an example )public class MySuperPatchingClass{
[HarmonyPatch(typeof(Mission), "ComputeBlowMagnitudeMelee")]
public class PatchMissionComputeBlowMagnitudeMelee
{
public static void Postfix(BasicCharacterObject attackerCharacter,
BasicCharacterObject attackerCaptainCharacter,
AttackCollisionData acd,
bool isAttackerAgentNull,
Vec3 attackerCurrentWeaponOffset,
bool isVictimAgentNull,
bool doesAttackerHaveMount,
bool doesVictimHaveMount,
bool isVictimMount,
float momentumRemaining,
bool cancelDamage,
bool hitWithAnotherBone,
float baseMagnitude,
float specialMagnitude,
float movementSpeedDamageModifier,
int speedBonusInt,
StrikeType strikeType,
Agent.UsageDirection attackDir,
MissionWeapon weapon,
bool attackerIsDoingPassiveAttack,
Vec2 attackerVelocity,
Vec2 victimVelocity)
{
// Now you are hooked to ComputeBlowMagnitudeMelee in Mission class
// Do your analysis with params in here if you need anything from ComputeBlowMagnitudeMelee method
}
}
}
protected override void OnSubModuleLoad()
{
try
{
new Harmony("com.my.analysis.on.weird.ai").PatchAll();
}
catch (System.Exception e)
{
}
}
I see, glad to help - at least we have a solution like thing now.
I understand what you are trying to measure but I don't think this approach is correct.
I wouldn't say what you are asking is suitable for "hello world" project especially since you are confused with "what overrides what". It's better for you to check and make sure you understand that logic first. Otherwise, things can be complicated. Bannerlord has a strange architecture and you can get confused easily if you are not able to estimate what they were thinking.
CampaignBehaviorBase
MissionLogic
OnMissionStartedEvent
and in there, based on Mission type, add your MissionBehavior with using AddMissionBehaviour
Yes, they are unaware of your existence in the area until they spot your soldiers and this allows you to sneak and reposition your soldiers before launching an attack. And at night, this "detection" sight range is even shorter.