コード例 #1
0
ファイル: DoorBase.cs プロジェクト: CodeShaper13/Office
    private void OnTriggerEnter(Collider other)
    {
        ZombieBase monster = other.GetComponentInParent <ZombieBase>();

        if (!this.isOpen && monster != null && monster.navHelper.door == null && this.strength > 0)
        {
            monster.navHelper.setDoor(this);
        }
    }
コード例 #2
0
    public TaskIdle(ZombieBase monster) : base(monster)
    {
        //if(Director.get().dayNightCycle.isNight()) {
        this.zombie.setTask(new TaskAttack(this.zombie));
        return;
        //}

        // Place monster onto NavMesh.
        //ssthis.agent.SetDestination(this.monster.transform.position);
        //this.agent.path.cl
    }
コード例 #3
0
    /// <summary>
    /// Spawns a zombie at the passed position.
    /// </summary>
    public void spawnZombie(Vector3 position)
    {
        ZombieBase zombie = GameObject.Instantiate(this.zombiePrefab, position, Quaternion.Euler(0, UnityEngine.Random.Range(0, 359), 0), this.transform).GetComponent <ZombieBase>();

        this.allZombiesList.Add(zombie);
    }
コード例 #4
0
    public ObjectBase call_object_base(ObjectBaseType objectBaseType, int subType, Node node, int UDLR = 0)
    {
        ObjectBase tempbase = null;

        switch (objectBaseType)
        {
        case ObjectBaseType.CHARACTER:
            tempbase = new PlayerBase((MonsterType)subType, node);
            break;

        case ObjectBaseType.MONSTER:
            if ((MonsterType)subType == MonsterType.ZOMBIE)
            {
                tempbase = new ZombieBase((MonsterType)subType, node);
            }
            if ((MonsterType)subType == MonsterType.GHOST)
            {
                tempbase = new GhostBase((MonsterType)subType, node);
            }
            if ((MonsterType)subType == MonsterType.ZOMBIE_TONGUE)
            {
                tempbase = new ZombieBase_tongue((MonsterType)subType, node);
            }
            if ((MonsterType)subType == MonsterType.GHOST_LV2)
            {
                tempbase = new GhostBase((MonsterType)subType, node, 2);
            }
            break;

        case ObjectBaseType.ITEM:
            tempbase = new ItemBase((ItemType)subType, node);
            break;

        case ObjectBaseType.DOOR:
            if ((DoorType)subType == DoorType.NORMAL)
            {
                tempbase = new DoorBase_Normal((DoorType)subType, node, UDLR);
            }
            if ((DoorType)subType == DoorType.UP_STAIR)
            {
                tempbase = new DoorBase_Upstair((DoorType)subType, node, UDLR);
            }
            if ((DoorType)subType == DoorType.DOWN_STAIR)
            {
                tempbase = new DoorBase_Downstair((DoorType)subType, node, UDLR);
            }

            if ((DoorType)subType == DoorType.LOCKED_DOOR_NORAML)
            {
                tempbase = new DoorBase_LockedNormal((DoorType)subType, node, UDLR);
            }
            if ((DoorType)subType == DoorType.LOCKED_DOOR_UP_STAIR)
            {
                tempbase = new DoorBase_LockedUpstair((DoorType)subType, node, UDLR);
            }
            if ((DoorType)subType == DoorType.LOCKED_DOOR_DOWN_STAIR)
            {
                tempbase = new DoorBase_LockedDownstair((DoorType)subType, node, UDLR);
            }

            break;

        case ObjectBaseType.BLOCK:
            if (!checkDoor(node))
            {
                break;
            }
            if ((BlockType)subType == BlockType.WELL)
            {
                tempbase = new BlockBase_Well((BlockType)subType, node);
            }
            if ((BlockType)subType == BlockType.BOX)
            {
                tempbase = new BlockBase_Box((BlockType)subType, node);
            }

            if ((BlockType)subType == BlockType.CASE)
            {
                tempbase = new BlockBase_Case((BlockType)subType, node);
            }
            if ((BlockType)subType == BlockType.CASE_LOCKED)
            {
                tempbase = new BlockBase_Case_Locked((BlockType)subType, node);
            }
            if ((BlockType)subType == BlockType.VENDINGMACHINE)
            {
                tempbase = new BlockBase_Vendingmachine((BlockType)subType, node);
            }
            if ((BlockType)subType == BlockType.WELL_LOCKED)
            {
                tempbase = new BlockBase_Well_Locked((BlockType)subType, node);
            }
            break;

        case ObjectBaseType.TRAP:
            if ((TrapType)subType == TrapType.MAGICCIRCLE)
            {
                tempbase = new TrapBase_Magiccircle((TrapType)subType, node);
            }
            if ((TrapType)subType == TrapType.NORMAL)
            {
                tempbase = new TrapBase_Normal((TrapType)subType, node);
            }

            if ((TrapType)subType == TrapType.NORMAL_TYPE2)
            {
                tempbase = new TrapBase_Normal_type2((TrapType)subType, node, false);
            }
            if ((TrapType)subType == TrapType.NORMAL_TYPE3)
            {
                tempbase = new TrapBase_Normal_type2((TrapType)subType, node, true);
            }

            break;

        default:
            break;
        }
        return(tempbase);

        /*
         * if (objectBaseType == ObjectBaseType.CHARACTER) // player경우 pool 안쓰는경우.
         * {
         *      return new PlayerBase((MonsterType)subType, node);
         * }
         *
         * for (int i = 0; i < object_base_dict[objectBaseType].Count; i++)
         * {
         *      if (!object_base_dict[objectBaseType][i].is_alive)
         *      {
         *              object_base_dict[objectBaseType][i].init_ObjectBase(objectBaseType, subType, node);
         *              return object_base_dict[objectBaseType][i];
         *      }
         * }
         * create_object_base(objectBaseType, subType, node, UDLR);
         * return object_base_dict[objectBaseType][object_base_dict[objectBaseType].Count - 1];
         */
    }
コード例 #5
0
 public TaskBase(ZombieBase monster)
 {
     this.zombie    = monster;
     this.navHelper = monster.navHelper;
 }