Пример #1
0
        private void MoveOverride(List <HexCell> moveCells)
        {
//			bool isLost = UnityEngine.Random.Range(0, 2) == 0;
            bool isLost = NKMRandom.Get(Name, 0, 2) == 0;

            if (!isLost)
            {
                ParentCharacter.DefaultBasicMove(moveCells);
            }
            else
            {
                Active.RemoveMoveCells();
                int movementPoints = ParentCharacter.Speed.Value;
                Active.MoveCells.Add(ParentCharacter.ParentCell);
                HexCell        lastCell    = ParentCharacter.ParentCell;
                List <HexCell> moveTargets = ParentCharacter.GetBasicMoveCells();
                while (movementPoints-- > 0 || !lastCell.IsFreeToStand)
                {
//					List<HexCell> neighborMoveCells = lastCell.GetNeighbors(1,
//						SearchFlags.StopAtEnemyCharacters | SearchFlags.StopAtFriendlyCharacters | SearchFlags.StopAtWalls);
                    List <HexCell> neighborMoveCells = lastCell.GetNeighbors(1).Intersect(moveTargets).ToList();
//					int r = UnityEngine.Random.Range(0, neighborMoveCells.Count);
//					lastCell = neighborMoveCells[r];
                    lastCell = neighborMoveCells.GetRandom();
                    Active.AddMoveCell(lastCell);
                }
                ParentCharacter.DefaultBasicMove(Active.MoveCells);
                Console.Log($"{ParentCharacter.FormattedFirstName()}: Cholera, znowu się zgubili?");
//				int rand = UnityEngine.Random.Range(1, 4);
                int soundID = NKMRandom.Get($"{Name} - ID", 1, 4);
                Active.PlayAudio("op wtf " + soundID);
            }
        }
Пример #2
0
 public static T GetRandom <T>(this List <T> list)
 {
     if (list.Count == 0)
     {
         return(default(T));
     }
     return(list[NKMRandom.Get("System Generic Random" + NKMID.GetNext("System Generic Random"), 0, list.Count)]);
 }
Пример #3
0
        public void Get_SingleValueSet_ValueIsEqual()
        {
            NKMRandom.Set("test", 3);

            int?value = NKMRandom.Get("test");

            Assert.Equal(3, value);
        }
Пример #4
0
        public void Get_SecondTimeAfterSingleSet_ValueIsNull()
        {
            NKMRandom.Set("test", 3);
            NKMRandom.Get("test");

            int?secondValue = NKMRandom.Get("test");

            Assert.Null(secondValue);
        }
Пример #5
0
        public HighLuck() : base(AbilityType.Passive, "High luck")
        {
            OnAwake += () => ParentCharacter.BeforeAttack += (character, damage) =>
            {
                int r = NKMRandom.Get(Name, 1, 101);
//                if (UnityEngine.Random.Range(1, 101) <= 25) damage.Value *= 2;
                if (r <= 25)
                {
                    damage.Value *= 2;
                }
            };
        }
Пример #6
0
        public Parry() : base(AbilityType.Passive, "Parry")
        {
            OnAwake += () => ParentCharacter.BeforeBeingBasicAttacked += (character, damage) =>
            {
//                var r = UnityEngine.Random.Range(1, 101);
                int r = NKMRandom.Get(Name, 1, 101);
                if (r <= DodgeChancePercent)
                {
                    damage.Value = 0;
                }
            };
        }
Пример #7
0
        public void Get_SeveralTimesAfterSeveralValueSet_ValuesGetProperly()
        {
            NKMRandom.Set("test", 3);
            NKMRandom.Set("other", 6);
            NKMRandom.Set("test", 133);

            int?value1 = NKMRandom.Get("test");
            int?value2 = NKMRandom.Get("test");
            int?value3 = NKMRandom.Get("other");
            int?value4 = NKMRandom.Get("other");

            Assert.Equal(133, value1);
            Assert.Null(value2);
            Assert.Equal(6, value3);
            Assert.Null(value4);
        }
Пример #8
0
        public void Get_WithoutSetting_ValueIsNull()
        {
            int?value = NKMRandom.Get("test");

            Assert.Null(value);
        }