Esempio n. 1
0
        protected override void ExecuteInsertUnitCommand(string[] commandWords)
        {
            Unit unit = null;

            switch (commandWords[1])
            {
            case "Tank":
                unit = new Tank(commandWords[2]);
                break;

            case "Marine":
                unit = new Marine(commandWords[2]);
                break;

            case "Parasite":
                unit = new Parasite(commandWords[2]);
                break;

            case "Queen":
                unit = new Queen(commandWords[2]);
                break;

            default:
                break;
            }

            if (unit != null)
            {
                base.InsertUnit(unit);
            }

            base.ExecuteInsertUnitCommand(commandWords);
        }
Esempio n. 2
0
        protected override void ExecuteInsertUnitCommand(string[] commandWords)
        {
            Unit unit = null;
            switch (commandWords[1])
            {
                case "Tank":
                    unit = new Tank(commandWords[2]);
                    break;
                case "Marine":
                    unit = new Marine(commandWords[2]);
                    break;
                case "Parasite":
                    unit = new Parasite(commandWords[2]);
                    break;
                case "Queen":
                    unit = new Queen(commandWords[2]);
                    break;
                default:
                    break;
            }

            if (unit != null)
            {
                base.InsertUnit(unit);
            }

            base.ExecuteInsertUnitCommand(commandWords);
        }
Esempio n. 3
0
        protected override void ExecuteInsertUnitCommand(string[] commandWords)
        {
            switch (commandWords[1])
            {
            case "Marine":
                var marine = new Marine(commandWords[2]);
                base.InsertUnit(marine);
                break;

            case "Parasite":
                var parasite = new Parasite(commandWords[2]);
                base.InsertUnit(parasite);
                break;

            case "Queen":
                var queen = new Queen(commandWords[2]);
                base.InsertUnit(queen);
                break;

            case "Tank":
                var tank = new Tank(commandWords[2]);
                base.InsertUnit(tank);
                break;

            default:
                base.ExecuteInsertUnitCommand(commandWords);
                break;
            }
        }
Esempio n. 4
0
 protected override void ExecuteInsertUnitCommand(string[] commandWords)
 {
     switch (commandWords[1])
     {
         case "Tank":
             var tank = new Tank(commandWords[2]);
             this.InsertUnit(tank);
             break;
         case "Marine":
             var marine = new Marine(commandWords[2]);
             this.InsertUnit(marine);
             break;
         case "Parasite":
             var parasite = new Parasite(commandWords[2]);
             this.InsertUnit(parasite);
             break;
         case "Queen":
             var queen = new Queen(commandWords[2]);
             this.InsertUnit(queen);
             break;
         default:
             base.ExecuteInsertUnitCommand(commandWords);
             break;
     }
 }
Esempio n. 5
0
        public void ReturnInfestInteraction_WhenDecideInteractionWithValidUnitIsCalled()
        {
            var infestUnit = new Parasite("Boris");

            List <UnitInfo> units = new List <UnitInfo>();

            var dog = new UnitInfo(new Dog("Sharo"));

            units.Add(dog);

            var result = infestUnit.DecideInteraction(units);

            Assert.AreEqual(InteractionType.Infest, result.InteractionType);
        }
Esempio n. 6
0
        public void ReturnPassiveInteraction_WhenDecideInteractionIsCalledWithNullUnitId()
        {
            var infestUnit = new Parasite("Boris");

            List <UnitInfo> units = new List <UnitInfo>();

            var parasite = new Parasite(null);

            var unitInfo = new UnitInfo(parasite);

            units.Add(unitInfo);

            var result = infestUnit.DecideInteraction(units);

            Assert.AreEqual(Interaction.PassiveInteraction, result);
        }
Esempio n. 7
0
    // Start is called before the first frame update
    void Start()
    {
        _parasite = FindObjectOfType <Parasite>();

        if (this.name.Contains("00"))
        {
            _targetOrgan = GameObject.Find("OrganPurple00").transform;
        }
        else if (this.name.Contains("01"))
        {
            _targetOrgan = GameObject.Find("OrganOrange01").transform;
        }
        else
        {
            _targetOrgan = GameObject.Find("OrganGreen02").transform;
        }
    }
        public void ReturnAttackInteractionType_WhenInteractWithAttackableUnit()
        {
            var marine = new Marine("Pesho");

            var parasite = new Parasite("Boris");
            var queen    = new Queen("Tereza");

            var parasiteInfo = new UnitInfo(parasite);
            var queenInfo    = new UnitInfo(queen);
            var marineInfo   = new UnitInfo(marine);

            List <UnitInfo> units = new List <UnitInfo>();

            units.Add(parasiteInfo);
            units.Add(queenInfo);

            var result   = marine.DecideInteraction(units);
            var expected = new Interaction(marineInfo, queenInfo, InteractionType.Attack);

            Assert.AreEqual(expected.InteractionType, result.InteractionType);
        }
        public void TargetUnithWithMaxHealth_WhenThereAreMoreThanOneUnit()
        {
            var marine = new Marine("Pesho");

            var parasite = new Parasite("Boris");
            var queen    = new Queen("Tereza");

            var parasiteInfo = new UnitInfo(parasite);
            var queenInfo    = new UnitInfo(queen);
            var marineInfo   = new UnitInfo(marine);

            List <UnitInfo> units = new List <UnitInfo>();

            units.Add(parasiteInfo);
            units.Add(queenInfo);

            var result   = marine.DecideInteraction(units);
            var expected = new Interaction(marineInfo, queenInfo, InteractionType.Attack);

            Assert.AreEqual(expected.TargetUnit, result.TargetUnit);
        }
    public void SetVamparasite()
    {
        // Don't activate vamparasite more than once
        if (isVamparasite)
        {
            return;
        }
        isVamparasite = true;
        try {
            Parasite parasite = (Parasite)owner.GetCharacter();
            if (parasite != null)
            {
                parasite.ChangeToVampColour();
            }
        } catch {}
        GameObject mutationAlertPrefab = Resources.Load("MutationAlert") as GameObject;

        GameObject.Instantiate(mutationAlertPrefab,
                               owner.GetCharacter().transform.position + (Vector3)HEALTH_ALERT_OFFSET,
                               Quaternion.identity);
        UiManager.Instance.ActivateMutation(0);
    }
Esempio n. 11
0
    // === function to infect the object to its left
    public void InfectLeft(int infect)
    {
        if (delay != 0)
        {
            delay -= 1;
        }
        Decay();
        // raycast to the left
        RaycastHit2D[] hitLeft = Physics2D.RaycastAll(transform.position, Vector2.left, 0.2f);
        // refrence to the object to the left
        Parasite par = hitLeft[2].collider.gameObject.GetComponent <Parasite>();

        if (infect > 0)
        {
            infect -= 1;
            par.InfectLeft(infect);
        }
        if (decay >= 2 && par.decay < 5 && delay == 0)
        {
            delay += 1;
            par.InfectLeft(0);
        }
    }
Esempio n. 12
0
 public override void Apply(Parasite p)
 {
     p.resistance = resistance;
 }
Esempio n. 13
0
 public override void Apply(Parasite p)
 {
     p.range = range;
 }
        public void ReturnCorrectHealthValue_WhenProperyHealthIsCalled()
        {
            var parasite = new Parasite("Koko");

            Assert.AreEqual(1, parasite.Health);
        }
Esempio n. 15
0
    private void GenerateField()
    {
        Debug.Log("generate field");
        //XZ to XY
        size.x = (int)topRight.position.x - (int)bottomLeft.position.x;
        size.y = (int)topRight.position.z - (int)bottomLeft.position.z;

        grid = new Segment[size.x, size.y];
        //Find valid floor
        for (int x = 0; x < size.x; ++x)
        {
            for (int y = 0; y < size.y; ++y)
            {
                Vector3 point = new Vector3((float)x + 0.5f, rayHeight, (float)y + 0.5f) + bottomLeft.position;
                //See if we can place a grid segment here
                RaycastHit hit;
                //if (Physics.Raycast(point, Vector3.down, out hit, rayHeight + 1.0f, layers))
                if (Physics.BoxCast(point, new Vector3(width, width, width), Vector3.down, out hit, Quaternion.Euler(0, 0, 0), rayHeight + 1.0f, layers))
                {
                    //Valid object hit
                    if (hit.transform.gameObject.layer == 8)
                    {
                        grid[x, y] = new Segment();
                        grid[x, y].direction[0] = Vector3.zero;
                        continue;
                    }
                    //Obstruction but it might be destroyed in the future
                    else if (hit.transform.gameObject.GetComponent <DestructableObjects>() != null)
                    {
                        //grid[x, y] = new Segment();
                        //grid[x, y].direction[0] = Vector3.zero;
                        Parasite para = hit.transform.gameObject.GetComponent <Parasite>();
                        //Put some data into the obstruction for when its destryed
                        if (para == null)
                        {
                            para = hit.transform.gameObject.AddComponent <Parasite>();
                        }
                        //Add data
                        para.Add(x, y);
                        //continue;
                    }
                }
                //No hit/bad hit
                grid[x, y] = null;
            }
        }
        //Loop to assign neighbours correctly
        for (int x = 0; x < size.x; ++x)
        {
            for (int y = 0; y < size.y; ++y)
            {
                if (grid[x, y] == null)
                {
                    continue;
                }
                //Someones about to get justed
                //0↑
                if (y != 0)
                {
                    grid[x, y].neighbours[0] = grid[x, y - 1];
                }
                //1↗
                if (x != size.x - 1 && y != 0)
                {
                    grid[x, y].neighbours[1] = grid[x + 1, y - 1];
                }
                //2→
                if (x != size.x - 1)
                {
                    grid[x, y].neighbours[2] = grid[x + 1, y];
                }
                //3↘
                if (x != size.x - 1 && y != size.y - 1)
                {
                    grid[x, y].neighbours[3] = grid[x + 1, y + 1];
                }
                //4↓
                if (y != size.y - 1)
                {
                    grid[x, y].neighbours[4] = grid[x, y + 1];
                }
                //5↙
                if (x != 0 && y != size.y - 1)
                {
                    grid[x, y].neighbours[5] = grid[x - 1, y + 1];
                }
                //6←
                if (x != 0)
                {
                    grid[x, y].neighbours[6] = grid[x - 1, y];
                }
                //7↖
                if (x != 0 && y != 0)
                {
                    grid[x, y].neighbours[7] = grid[x - 1, y - 1];
                }
            }
        }
    }
Esempio n. 16
0
 private void Awake()
 {
     instance  = this;
     _parasite = FindObjectOfType <Parasite>();
 }
        public void CreateAnInstance()
        {
            var parasite = new Parasite("Koko");

            Assert.IsInstanceOf(typeof(Parasite), parasite);
        }
Esempio n. 18
0
 public override void Apply(Parasite p)
 {
     p.qteDecreaser = QteDecreasment;
 }
Esempio n. 19
0
 // Start is called before the first frame update
 void Start()
 {
     parasite = GetComponent <Parasite>();
 }
Esempio n. 20
0
 public abstract void Apply(Parasite p);
        public void ReturnCorrectAggressionValue_WhenProperyAggressionIsCalled()
        {
            var parasite = new Parasite("Koko");

            Assert.AreEqual(1, parasite.Aggression);
        }
Esempio n. 22
0
 public ParasiteThinkBehaviour(Parasite parasite)
 {
     this.parasite = parasite;
 }
Esempio n. 23
0
 public override void Apply(Parasite p)
 {
     p.controlSpeed = speed;
 }
Esempio n. 24
0
 protected virtual void ExecuteInsertUnitCommand(string[] commandWords)
 {
     switch (commandWords[1])
     {
         case "Dog":
             var dog = new Dog(commandWords[2]);
             this.InsertUnit(dog);
             break;
         case "Human":
             var human = new Human(commandWords[2]);
             this.InsertUnit(human);
             break;
         case "Tank":
             var tank = new Tank(commandWords[2]);
             this.InsertUnit(tank);
             break;
         case "Marine":
             var marine = new Marine(commandWords[2]);
             this.InsertUnit(marine);
             break;
         case "Parasite":
             var parasite = new Parasite(commandWords[2]);
             this.InsertUnit(parasite);
             break;
         case "Queen":
             var queen = new Queen(commandWords[2]);
             this.InsertUnit(queen);
             break;
         default:
             break;
     }
 }
        public void ReturnCorrectPowerValue_WhenProperyPowerIsCalled()
        {
            var parasite = new Parasite("Koko");

            Assert.AreEqual(1, parasite.Power);
        }