Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Captain Gamemode #294

Open
9 of 13 tasks
Muparadzi opened this issue Feb 22, 2024 · 1 comment
Open
9 of 13 tasks

Captain Gamemode #294

Muparadzi opened this issue Feb 22, 2024 · 1 comment
Assignees

Comments

@Muparadzi
Copy link
Collaborator

Muparadzi commented Feb 22, 2024

Based on the Native gamemode, players are given control of a number of troops that they are able to command.

  • Number of bots are split by commanders, based on their equipment value.
  • As more players connect, the bot count also reduces, leading to a normal battle server as player count reaches total bot count.

Gamemode

  • Number of bots to spawn controlled by server config
  • Number of players reduces numbers of bots in a team
  • Spawn bots if singleplayer
  • Design and implement singleplayer bots (maybe different themed armies?)
  • Rudimentary singleplayer balance system (calculate number of bots to spawn based on player army value)
  • Create army composition from player settings
  • Fix bot bows

Web

  • Captain mode icon & online players
  • Localisation
  • Captain page, to select (3?) characters to make up your army (selected from the player's own characters, allows customisation, incentivises the levelling of alts, & spending of loom points and gold)
  • UTests

Bugs

@Muparadzi
Copy link
Collaborator Author

Crash observed on beta server:

Application: DedicatedCustomServer.Starter.exe
CoreCLR Version: 6.0.1222.56807
.NET Version: 6.0.12
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException()
   at System.Linq.Enumerable.TryGetSingle[TSource](IEnumerable`1 source, Func`2 predicate, Boolean& found)
   at TaleWorlds.MountAndBlade.MissionLobbyComponent.OnBotKills(Agent botAgent, Agent killedAgent)
   at TaleWorlds.MountAndBlade.DedicatedCustomServer.MissionCustomGameServerComponent.OnBotKills(Agent botAgent, Agent killedAgent)
   at TaleWorlds.MountAndBlade.MissionLobbyComponent.OnAgentRemoved(Agent affectedAgent, Agent affectorAgent, AgentState agentState, KillingBlow killingBlow)
   at TaleWorlds.MountAndBlade.Mission.OnAgentRemoved(Agent affectedAgent, Agent affectorAgent, AgentState agentState, KillingBlow killingBlow)
   at TaleWorlds.MountAndBlade.Agent.Die(Blow b, KillInfo overrideKillInfo)
   at TaleWorlds.MountAndBlade.Agent.HandleBlow(Blow& b, AttackCollisionData& collisionData)
   at TaleWorlds.MountAndBlade.Mission.RegisterBlow(Agent attacker, Agent victim, GameEntity realHitEntity, Blow b, AttackCollisionData& collisionData, MissionWeapon& attackerWeapon, CombatLogData& combatLogData)
   at TaleWorlds.MountAndBlade.Mission.MeleeHitCallback(AttackCollisionData& collisionData, Agent attacker, Agent victim, GameEntity realHitEntity, Single& inOutMomentumRemaining, MeleeCollisionReaction& colReaction, CrushThroughState crushThroughState, Vec3 blowDir, Vec3 swingDir, HitParticleResultData& hitParticleResultData, Boolean crushedThroughWithoutAgentCollision)
   at ManagedCallbacks.CoreCallbacksGenerated.Mission_MeleeHitCallback(Int32 thisPointer, AttackCollisionData& collisionData, Int32 attacker, Int32 victim, NativeObjectPointer realHitEntity, Single& inOutMomentumRemaining, MeleeCollisionReaction& colReaction, CrushThroughState crushThroughState, Vec3 blowDir, Vec3 swingDir, HitParticleResultData& hitParticleResultData, Boolean crushedThroughWithoutAgentCollision)
   at TaleWorlds.MountAndBlade.MissionState.TickMission(Single realDt)
   at TaleWorlds.MountAndBlade.MissionState.OnTick(Single realDt)
   at TaleWorlds.Core.Game.OnTick(Single dt)
   at TaleWorlds.Core.GameManagerBase.OnTick(Single dt)
   at TaleWorlds.MountAndBlade.Module.OnApplicationTick(Single dt)
   at TaleWorlds.DotNet.Managed.ApplicationTick(Single dt)

Crash occurred twice over 48 hour period

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant