示例#1
0
 public virtual void Effect(Collider c, B_Player p)
 {
     if (EffectDirector.instance != null)
     {
         EffectDirector.instance.playInPlace(transform.position, effectname);
     }
 }
 //最初はヘルパーをスポーンする
 public void Init(B_Player p)
 {
     player = p;
     if (helper == null)
     {
         Vector3       spawnPoint = new Vector3(transform.position.x, transform.position.y, transform.position.z + spawnOffset);
         KitchenHelper newHelper  = Instantiate(HelperPrefab, spawnPoint, transform.rotation) as KitchenHelper;
         helper             = newHelper;
         helper.towerScript = this;
         Transform gameScene = GameObject.FindGameObjectWithTag(StaticStrings.gameScene).transform;
         helper.transform.SetParent(gameScene);
     }
     updateTowerUI();
     b_collider = GetComponent <BoxCollider>();
     if (flag != null)
     {
         flagPos      = flag.transform.localPosition;
         flagStartPos = flagPos;
     }
     if (healthbar == null)
     {
         return;
     }
     healthbar.maxValue = maxHealh;
     Height             = 0;
     fireLifeTime       = 8;
     damageforSecond    = 1;
     damageDelayCounter = 1;
     damageDelay        = 1;
 }
 public void INITIALIZING(B_Player play)
 {
     p = play;
     p.BULLETSPAWNER = this;
     direction       = transform.forward;
     bulletSpawning  = shoot;
     currentBullet   = weaponBullet;
 }
示例#4
0
    public override void Effect(Collider c, B_Player p)
    {
        ITornado tornado = c.GetComponent <ITornado>();

        if (tornado != null)
        {
            tornado.Vortex();
        }
    }
示例#5
0
 public void init()
 {
     player          = GetComponentInChildren <B_Player>();
     anim            = GetComponent <Animator>();
     thisTr          = this.transform;
     rig             = GetComponent <Rigidbody>();
     rig.constraints = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationY | RigidbodyConstraints.FreezeRotationZ;
     tm   = player.team;
     coll = GetComponent <CapsuleCollider>();
 }
    public override void Effect(Collider c, B_Player p)
    {
        EffectDirector.instance.playInPlace(transform.position, StaticStrings.SPICESKILL);
        IConfused confused = c.GetComponent <IConfused>();

        if (confused != null)
        {
            confused.confuse();
        }
    }
    private void OnTriggerEnter(Collider other)
    {
        if (other.tag == StaticStrings.player)
        {
            B_Player player = other.GetComponent <B_Player>();
            if (player == null)
            {
                return;
            }

            player.status.getCurrentweapon.changeBullet(b);
            Destroy(gameObject);
        }
    }
示例#8
0
    public void take(Collider other)
    {
        B_Player p = other.GetComponentInChildren <B_Player>();

        if (p == null)
        {
            return;
        }
        switch (ItemType)
        {
        //爆弾追加
        case itemType.bomb:
            p.status.addBomb(1);
            EffectDirector.instance.playInPlace(transform.position, StaticStrings.PICKUPSTAR);
            break;
        //普通から特別なバレットに変更

        case itemType.bullet:
            if (bullet != null)
            {
                p.BULLETSPAWNER.changeToSpecialShoot(Ammo, bullet);
            }
            EffectDirector.instance.playInPlace(transform.position, StaticStrings.PICKUPDIAMOND);
            //アイコンも変わる
            if (itemSprite != null)
            {
                if (p.getCanvas() == null)
                {
                    return;
                }
                p.getCanvas().changeIngredientImage(itemSprite);
            }
            break;

        //材料追加
        case itemType.ingredient:
            Team t = p.getTeam();
            if (t == tm)
            {
                p.onTakingIngredient();
                EffectDirector.instance.playInPlace(transform.position, StaticStrings.PICKUPSMILE);
            }
            else
            {
                return;
            }
            break;
        }
        Destroy(gameObject);
    }
示例#9
0
    public override void Effect(Collider c, B_Player p)
    {
        EffectDirector.instance.playInPlace(transform.position, StaticStrings.bomb);
        IJump jmp = c.GetComponent <IJump>();

        if (jmp != null)
        {
            jmp.jump();
        }
        if (Soundmanager.instance == null)
        {
            return;
        }
        Soundmanager.instance.PlaySeByName(StaticStrings.explosion);
    }
示例#10
0
    //contructor
    public PlayerCPU(Animator an, B_Player p, NavMeshAgent ag, STATUS st, Transform thisTran)
    {
        status                 = st;
        anim                   = an;
        targetCheckCounter     = targetCheckTimer;
        player                 = p;
        agent                  = ag;
        attackTimer            = status.getCurrentweapon.attackdelay;
        thisTransform          = thisTran;
        target                 = player.enemyList[0].transform;
        player.manaIsFull     += onManaIsFull;
        player.takeIngredient += useIngredient;
        int rand = UnityEngine.Random.Range(50, 98);

        player.Add_SkillPoints(rand);
    }
示例#11
0
    public override void Effect(Collider c, B_Player p)
    {
        bool         isAi = true;
        Inputhandler hand = c.GetComponent <Inputhandler>();

        if (hand != null)
        {
            isAi = false;
        }
        IFroze froze_stat = c.GetComponent <IFroze>();

        if (froze_stat != null)
        {
            SnowMan sman = Instantiate(snowMan, c.transform.position, c.transform.rotation) as SnowMan;
            sman.objectToFreeze(c.gameObject, isAi);
        }
    }
 public void INIT(B_Player PLAYER, Team TEAM)
 {
     status = new STATUS();
     player = PLAYER;
     team   = TEAM;
     anim   = GetComponent <Animator>();
     //gameManagerにアクセスして敵のタワーを探す
     foreach (var p in B_GameManager.instance.playerList)
     {
         ITeam team = p.gameObject.GetComponent <ITeam>();
         if (team.getTeam() != this.team)
         {
             enemies.Add(p);
         }
     }
     status.getCurrentweapon.attackdelay = 1.5f;
 }
    public override void Effect(Collider c, B_Player p)
    {
        int rnd = Random.Range(1, 11);

        if (rnd >= 9)
        {
            Iflour f = c.GetComponent <Iflour>();
            if (f == null)
            {
                return;
            }
            f.activeFlour();
        }
        if (EffectDirector.instance != null)
        {
            EffectDirector.instance.playInPlace(transform.position, StaticStrings.snow);
        }
    }
示例#14
0
    //プレイヤーを渡す
    public void Init(B_Player p)
    {
        player   = p;
        playerID = player.getID();
        if (manaImage != null)
        {
            manaImage.fillAmount = p.status.getMP();
        }

        actionMenu.SetActive(false);
        health = GetComponentInParent <HealthManager>();
        updateTowerUI();
        initialized = true;
        if (skillImage != null)
        {
            skillImageActive(false);
        }
    }
示例#15
0
    public PlayerActions(B_Player _p, Inputhandler handle, Animator _anim)
    {
        player     = _p;
        playerID   = player.getID();
        actionMenu = player.getCanvas().actionMenu;
        foreach (var p in player.enemyList)
        {
            targets.Add(p.transform);
            targets.Add(p.Tower.transform);
            targets.Add(p.Helper.transform);
        }

        hand = handle;
        anim = _anim;

        int count = 0;

        for (int i = 0; i < targets.Count; i++)
        {
            if (targets[i].GetComponent <B_Player>())
            {
                count = 0;
            }
            else if (targets[i].GetComponent <PancakeTower>())
            {
                count = 1;
            }
            else
            {
                count = 2;
            }

            player.getCanvas().giveTargetImage(i, count);
            //attackCounter = player.status.getCurrentweapon.attackdelay;
        }
        Sprite[] sprites = Resources.LoadAll <Sprite>("UI_Images/Icons/message");
        foreach (var item in sprites)
        {
            messageImages.Add(item.name, item);
        }
    }
    public override void Effect(Collider c, B_Player p)
    {
        int rnd = Random.Range(1, 11);

        if (rnd >= 9)
        {
            IBurn b = c.GetComponent <IBurn>();
            if (b == null)
            {
                return;
            }
            b.burn();
            if (fire == null)
            {
                return;
            }
            GameObject newFire = Instantiate(fire, transform.position, transform.rotation) as GameObject;
            newFire.transform.SetParent(c.transform);
            newFire.transform.localPosition = new Vector3(0, 0, 0);
        }
    }
示例#17
0
 public void InitInGame()
 {
     ver    = StaticStrings.Vertical;
     hor    = StaticStrings.Horizontal;
     anim   = GetComponent <Animator>();
     player = GetComponentInChildren <B_Player>();
     player.initializeCanvas();
     //dependency with statemanager
     states.init();
     camerahandler = GetComponentInChildren <Camerahandler>();
     camerahandler.Init(this);
     playerActions = new PlayerActions(player, this, anim);
     player.Helper.INITIALIZETARGETEVENT(this);
     reciveTrget(playerActions.targets[0]);
     bs = GetComponentInChildren <BulletSpawner>();
     bs.INITIALIZING(player);
     player.reciveAnimator(anim);
     isInit = true;
     player.assignWeapons(weaponModel, SpecialWeaponModel);
     isfrozen = false;
 }
    void Start()
    {
        rb     = GetComponent <Rigidbody>();
        anim   = GetComponent <Animator>();
        agent  = GetComponent <NavMeshAgent>();
        helper = GetComponent <KitchenHelper>();
        player = helper.getPlayer();
        WeaponModel.SetActive(false);
        EventsInitializing();
        STATUS status = helper.status;

        validStates = new Dictionary <stateType, AIState>();
        validStates.Add(stateType.idle, new IdleSM(this.agent, this, helper, status, stateType.idle, anim));
        validStates.Add(stateType.attack, new AttackSM(this.agent, this, helper, status, stateType.attack, anim));
        validStates.Add(stateType.defence, new DefenceSM(this.agent, this, helper, status, stateType.defence, anim));
        validStates.Add(stateType.cake, new MakeCakeSM(this.agent, this, helper, status, stateType.cake, anim));
        currentState = validStates[stateType.defence];
        pastState    = validStates[stateType.cake];
        changeState(stateType.idle);
        isfrozen = false;
    }
示例#19
0
    public void INIT(B_Player p)
    {
        anim   = GetComponent <Animator>();
        player = p;
        ag     = GetComponent <NavMeshAgent>();
        status = new STATUS();
        int selecting = UnityEngine.Random.Range(0, 3);

        switch (selecting)
        {
        case 0: aiType = CpuType.aggressive; break;

        case 1: aiType = CpuType.balanced; break;

        case 2: aiType = CpuType.defensive; break;

        default: aiType = CpuType.aggressive; break;
        }
        Weapon wp = new Gun(100, 25, 1f, 1, 1, 1);

        status.changeWeapon(wp);
        player.Tower.gameObject.AddComponent <AttackingDetector>();
        player.Tower.GetComponent <AttackingDetector>().brainConnetting(this);
        cpu = new PlayerCPU(anim, player, ag, status, this.transform);
        cpu.findNewTarget();
        ag.speed = 20;
        GetComponentInChildren <BulletSpawner>().INITIALIZING(player);
        player.reciveAnimator(anim);
        initialized = true;
        tm          = player.team;
        player.onDead();
        isfrozen = false;
        rb       = GetComponent <Rigidbody>();
        coll     = GetComponent <CapsuleCollider>();
        BulletSpawner spawner = GetComponentInChildren <BulletSpawner>();

        spawner.INITIALIZING(player);
    }
示例#20
0
    // Start is called before the first frame update
    void Start()
    {
        instance = this;

        buff = new BaseCorutine();
        stan = new BaseCorutine();

        move_x       = 0.0f;
        move_y       = 0.0f;
        buffSpeed    = 0.04f;
        defaultSpeed = 0.03f;
        speed        = defaultSpeed;

        playerHit_up    = false;
        playerHit_right = false;
        playerHit_down  = false;
        playerHit_left  = false;

        statusUpFlg = false;
        buffTime    = 10.0f;
        enemyHitFlg = false;
        stanTime    = 3.0f;
    }
示例#21
0
 public override void Effect(Collider c, B_Player p)
 {
     Instantiate(gravityZone, transform.position, transform.rotation);
 }
示例#22
0
 public SimpleAction(B_Player p, Inputhandler inp, Animator an) : base(p, inp, an)
 {
     p.takeIngredient += ontakingIngredient;
 }
示例#23
0
 public override void Initialize(B_Player p)
 {
     base.Initialize(p);
 }
示例#24
0
 public void passDirection(B_Player obj, Vector3 d)
 {
     direction = d;
     attacker  = obj;
 }
示例#25
0
 public virtual void Initialize(B_Player p)
 {
     player = p;
 }
 public override void Effect(Collider c, B_Player p)
 {
     Instantiate(jelly, transform.position, transform.rotation);
     Destroy(gameObject);
 }