/// <summary> /// Konstruktor. /// </summary> /// <param name="enemyType">Typ wroga.</param> /// <param name="assetName">Nazwa zasobu grafiki wroga.</param> /// <param name="life">Liczba życia wroga.</param> /// <param name="strenght">Siła ataku.</param> /// <param name="speed">Prędkość będąca dzielnikiem liczby 42.</param> /// <param name="direction">Kierunek początkowego porusznia się.</param> /// <param name="isFreeze">Czy jest zatrzymany w miejscu.</param> /// <param name="evolve">Delegatura do funkcji ewolucji.</param> /// <param name="testMove">Delegatura do funkcji testowania ruchu.</param> /// <param name="webShoot">Delegatura do funkcji strzelania.</param> /// <param name="observe">Delegatura do funkcji obserwowania w poszukiwaniu robaczka.</param> /// <param name="attack">Delegatura do funckji ataku na robaczka.</param> public Enemy(EnemyType enemyType, string assetName, int?life, int strenght, int speed, Direction direction, bool isFreeze, EvolveDelegate evolve, TestMoveDelegate testMove, WebShootDelegate webShoot, ObserveDelegate observe, AttackDelegate attack) { _enemyType = enemyType; _life = life; _strenght = strenght; _speed = _startSpeed = speed; _slowEffectTime = 0; _elapsedSlowTime = 0; _direction = direction; _isFreeze = isFreeze; _freezeEffectTime = 0; _elapsedFreezeTime = 0; _enemyGraphic = new AnimatedGraphic(); _evolve = evolve; _testMove = testMove; _webShoot = webShoot; _observe = observe; _attack = attack; LoadContent(Window.Context.Content, assetName); _isKilled = false; _sawWorm = false; }
/// <summary> /// Konstruktor kopiujący /// </summary> /// <param name="enemy">Obiekt wzorcowy</param> public Enemy(Enemy enemy) { _enemyGraphic = enemy._enemyGraphic.Clone(); _enemyType = enemy._enemyType; _life = enemy._life; _strenght = enemy._strenght; _speed = enemy._speed; _startSpeed = enemy._startSpeed; _direction = enemy._direction; _isFreeze = enemy._isFreeze; _isKilled = false; _evolve = enemy._evolve; _testMove = enemy._testMove; _webShoot = enemy._webShoot; _observe = enemy._observe; _attack = enemy._attack; _sawWorm = enemy._sawWorm; }
/// <summary> /// Konstruktor tworzący nowy obiekt szczura. /// </summary> /// <param name="enemyType">Typ wroga.</param> /// <param name="assetName">Nazwa zasobu grafiki wroga.</param> /// <param name="life">Liczba życia wroga.</param> /// <param name="strenght">Siła ataku.</param> /// <param name="speed">Prędkość będąca dzielnikiem liczby 42.</param> /// <param name="direction">Kierunek początkowego porusznia się.</param> /// <param name="isFreeze">Czy jest zatrzymany w miejscu.</param> /// <param name="evolve">Delegatura do funkcji ewolucji.</param> /// <param name="testMove">Delegatura do funkcji testowania ruchu.</param> /// <param name="webShoot">Delegatura do funkcji strzelania.</param> /// <param name="observe">Delegatura do funkcji obserwowania w poszukiwaniu robaczka.</param> /// <param name="attack">Delegatura do funckji ataku na robaczka.</param> public Rat(EnemyType enemyType, string assetName, int?life, int strenght, int speed, Direction direction, bool isFreeze, EvolveDelegate evolve, TestMoveDelegate testMove, WebShootDelegate webShoot, ObserveDelegate observe, AttackDelegate attack) : base(enemyType, assetName, life, strenght, speed, direction, isFreeze, evolve, testMove, webShoot, observe, attack) { _testMove = TestMove; _attack = Attack; _observe = Observe; _visitedGrounds = new bool[20, 20]; _prevGrounds = new Ground[20, 20]; x = 19; y = 0; // A* _distance = new double[20, 20]; for (int i = 0; i < _distance.GetLength(0); i++) { for (int j = 0; j < _distance.GetLength(1); j++) { _distance[i, j] = double.MaxValue; } } _t = new List <Tuple <Ground, int, int> >(); _aIsEnabled = false; _aStarGrounds = new Tuple <Ground, int, int> [20, 20]; _aNextPositions = new Stack <Point>(); //_aStarGrounds = new List<Ground>(); }