// Adds a belief to a dictionary given an old belief, derived chance, and block world void addBeliefUsingWorld(Dictionary <IJCoords, ProjectileSourceBelief> dict, int newI, int newJ, ProjectileSourceBelief oldBelief, float derivedChance, ref float c) { ProjectileSourceBelief derivedBelief = oldBelief.Clone(); derivedBelief.Probability = derivedChance; // Check for ammo in new position WeaponType ammoTypeCheckResult = blockWorld.CheckAmmo(newI, newJ); if (ammoTypeCheckResult != WeaponType.None) { if (derivedBelief.Ammo != -1) { derivedBelief.Ammo = 3; // Lightning doesn't matter } derivedBelief.PossibleWeapons.Add(ammoTypeCheckResult); } addBelief(dict, newI, newJ, derivedBelief, ref c); }