void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
예제 #2
0
    public void Start()
    {
        _moveScript   = GetComponent <MoveScript>();
        _shieldScript = GetComponentInChildren <Shield>();

        // Take damage when hit by weapon
        this.GetPubSub().SubscribeInContext <WeaponHitMessage>(m => HandleWeaponHit((WeaponHitMessage)m));

        // Input handlers
        this.GetPubSub().SubscribeInContext <MoveInputMessage>(m => HandleMoveInput((MoveInputMessage)m));
        this.GetPubSub().SubscribeInContext <FireInputMessage>(m => HandleFireInput((FireInputMessage)m));
        this.GetPubSub().SubscribeInContext <ShieldInputMessage>(m => HandleShieldInput((ShieldInputMessage)m));

        this.GetPubSub().SubscribeInContext <AttackEndedMessage>(m => HandleAttackEnded());

        // On shield hit
        this.GetPubSub().SubscribeInContext <ShieldHitMessage>(m => HandleShieldHitMessage((ShieldHitMessage)m));

        // On Stagger
        this.GetPubSub().SubscribeInContext <StaggeredMessage>(m => HandleStaggerMessage((StaggeredMessage)m));

        Assert.IsNotNull(Stats);

        Stats.AddRegen(StatsEnum.Energy, EnergyRegen);
        Stats.AddRegen(StatsEnum.Stability, StabilityRegen);

        _characterDamage = new CharacterDamage(Stats);
    }
예제 #3
0
    private void Start()
    {
        if (LevelManager.instance == null)
        {
            return;
        }

        button = GetComponent <Button>();
        button.interactable = Advertisement.IsReady(placementId);

        player       = LevelManager.instance.Player;
        playerDamage = player.GetComponent <CharacterDamage>();

        // Initialize the ads listener and service
        Advertisement.AddListener(this);
        Advertisement.Initialize(gameId, testMode);
    }
예제 #4
0
        public async void HealCharacter_PassingTest()
        {
            CharacterHealthService characterHealthService = InitilizeEnvironment();
            Character character = await characterHealthService.HealCharacter("Briv", 5);

            Assert.True(character.HP.Current == character.HP.Max); //no damage done to character yet, should be max
            CharacterDamage[] characterDamages = new CharacterDamage[1];
            characterDamages[0] = new CharacterDamage()
            {
                Amount = 10,
                Type   = "piercing"
            };
            await characterHealthService.DamageCharacter("Briv", characterDamages);

            character = await characterHealthService.HealCharacter("Briv", 5);

            Assert.True(character.HP.Current == character.HP.Max - 5);
        }
예제 #5
0
        public async void DamageCharacter_PassingTest()
        {
            CharacterHealthService characterHealthService = InitilizeEnvironment();
            Character character = await characterHealthService.AddTempHPToCharacter("Briv", 5);

            CharacterDamage[] characterDamages = new CharacterDamage[1];
            characterDamages[0] = new CharacterDamage()
            {
                Amount = 4,
                Type   = "piercing"
            };
            //testing that the health correctly removes from temp before it removes from current health
            character = await characterHealthService.DamageCharacter("Briv", characterDamages);

            Assert.True(character.HP.Total == character.HP.Max + 1);
            character = await characterHealthService.DamageCharacter("Briv", characterDamages);

            Assert.True(character.HP.Total == character.HP.Max - 3);
            await characterHealthService.HealCharacter("Briv", 3); //bring back to full for next part

            characterDamages = new CharacterDamage[4];
            //testing damage that includes a resistance, immunity, and normal. we've tested normal already above. This also tests that a null record should be skipped correct, the 4th index is not initilized
            characterDamages[0] = new CharacterDamage()
            {
                Amount = 10,
                Type   = "fire"
            };
            characterDamages[1] = new CharacterDamage()
            {
                Amount = 5,
                Type   = "slashing"
            };
            characterDamages[2] = new CharacterDamage()
            {
                Amount = 2,
                Type   = "psychic"
            };
            character = await characterHealthService.DamageCharacter("Briv", characterDamages); //This should deal 4 damage total because the fire is restited

            Assert.True(character.HP.Total == character.HP.Max - 4);
        }
예제 #6
0
 void OnTriggerStay(Collider col)
 {
     if (col.gameObject.tag == "Player")
     {
         if (damageTime < Time.time)
         {
             FPSPlayerComponent.ApplyDamage(damage);
             damageTime = Time.time + delay;
         }
     }
     if (col.gameObject.layer == 13)        //also damage NPCs
     {
         if (col.GetComponent <CharacterDamage>())
         {
             CharacterDamage NPC = col.GetComponent <CharacterDamage>();
             if (damageTime < Time.time)
             {
                 NPC.ApplyDamage(damage, Vector3.zero, transform.position, null, false, false);
                 damageTime = Time.time + delay;
             }
         }
     }
 }
 void Start()
 {
     characterDamage = gameObject.GetComponent <CharacterDamage>();
     PlayerD         = characterDamage.pDamage;
     firethrower     = fireThrower.GetComponent <Firethrower>();
 }