Exemple #1
0
    void CreateBase(string baseName)
    {
        // 그라운드 생성.
        GameObject basePrefab = PrefabsManager.GetInstance().dicBasePrefabs[baseName];

        goBase = Instantiate(basePrefab);
    }
Exemple #2
0
    public BasicProjectile CreateProjectile(ProjectileType type, bool _isEnemy, int damage, Vector3 startPos, BaseElementObject target, GameElement bulletType)
    {
        BasicProjectile bp = PrefabsManager.SpawnProjectile(type);

        bp = GameObject.Instantiate(bp);
        if (type == ProjectileType.Fire_Hero)
        {
            bp.Init(_isEnemy, damage, startPos, target.transform.position + new Vector3(Random.Range(-0.5f, 0.5f), Random.Range(-0.5f, 0.5f), Random.Range(-0.5f, 0.5f))
                    , target, bulletType);
            bp.isChaseBullet = false;
        }
        else
        {
            if (type == ProjectileType.Water_Hero)
            {
                bp.Init(_isEnemy, damage, startPos, target.transform.position, target, bulletType);
            }
            else
            {
                bp.Init(_isEnemy, damage, startPos, target.transform.position, target, bulletType);
            }
        }
        projectileList.Add(bp);
        return(bp);
    }
Exemple #3
0
    private void Awake()
    {
        if (instance == null)
        {
            instance = FindObjectOfType <Directors>();
        }
        else
        {
            if (instance.gameObject == null)
            {
                instance = FindObjectOfType <Directors>();
            }
            else
            {
                Destroy(this.gameObject);
                return;
            }
        }
        DontDestroyOnLoad(this.gameObject);

        battleState = BattleState.Prepare;
        PrefabsManager.ClearPool();
        PrepareManagers();
        InitManagers();
    }
Exemple #4
0
    public static GameStacksMeta Generate(PrefabsManager manager, Difficulty difficulty)
    {
        Debug.Log(string.Format("<color=green>{0}</color>", difficulty));
        StackDifficulty   stackDifficulty = StackDifficulty.Get(difficulty);
        int               size            = Random.Range(stackDifficulty.MinCips, stackDifficulty.MaxChips + 1);
        int               flips           = Random.Range((int)(size / 2), (int)(size * 1.5f));
        GameGeneratorMeta meta            = GenerateGameGeneratorMeta(size, flips, stackDifficulty.AllowCrushable, manager);
        GameStacksMeta    pair            = CreateFromGameGeneratorMeta(meta, manager);

        while (pair.start.Matches(pair.target))
        {
            Debug.Log("<color=red>Need to generate another stack since the target matches the start.</color>");
            meta = GenerateGameGeneratorMeta(size, flips, stackDifficulty.AllowCrushable, manager);
            pair = CreateFromGameGeneratorMeta(meta, manager);
        }

        int nFlipsAlternative = FlipsCalulator.CalculateMinFlips(pair.start, pair.target, 100, pair.nFlips);

        Debug.Log(string.Format("Calculated flips ({0}). Generator flips ({1})", nFlipsAlternative, pair.nFlips));
        if (nFlipsAlternative < pair.nFlips)
        {
            pair.nFlips = nFlipsAlternative;
        }

        return(pair);
    }
Exemple #5
0
 // Use this for initialization
 void Start()
 {
     effectsManager = effectsManagerGO.GetComponent <EffectsManager> ();
     table          = tableGO.GetComponent <Table> ();
     prefabsManager = prefabsManagerGO.GetComponent <PrefabsManager> ();
     Almighty.registerGameManager(this);
 }
Exemple #6
0
    void CreateMap()
    {
        GameObject newGo = new GameObject();

        newGo.name = this.mapData.map_id.ToString();

        // 그라운드를 만든다.
        GameObject groundPrefab = PrefabsManager.GetInstance().dicGroundPrefabs[mapData.groundName];

        Instantiate(groundPrefab).transform.parent = newGo.transform;

        // 환경을 배치한다.
        for (int i = 0; i < mapData.listEnvirnment.Count; i++)
        {
            GameObject envirGo = PrefabsManager.GetInstance().dicEnvironmentPrefabs[mapData.listEnvirnment[i].name];
            Vector3    pos     = new Vector3(mapData.listEnvirnment[i].x, mapData.listEnvirnment[i].y, 0);

            Instantiate(envirGo, pos, Quaternion.identity).transform.parent = newGo.transform;
        }


        // 그리드를 생성한다.
        grid.gridWorldSize = new Vector2(mapData.grid_x, mapData.grid_y);
        grid.nodeRadius    = mapData.node_radius;

        grid.CreateGrid();
    }
    void Start()
    {
        stateInformation = new StateInformation();
        interfaceManager = InterfaceManager.GetInstance();
        prefabsManager   = PrefabsManager.GetInstance();
        levelController  = LevelController.instance;
        levelDataManager = LevelDataManager.GetInstance();

        startupModule           = (IStartupModule)StartupModule.GetInstance();
        objectDeletionModule    = (IObjectDeletionModule)ObjectDeletionModule.GetInstance();
        objectPlacementModule   = (IObjectPlacementModule)ObjectPlacementModule.GetInstance();
        objectEditingModule     = (IObjectEditingModule)ObjectEditingModule.GetInstance();
        objectInformationModule = (IObjectInformationModule)ObjectInformationModule.GetInstance();


        GameObject leftMouseButtonObject = Instantiate(mouseButtonPrefab, transform);

        leftMouseButton = leftMouseButtonObject.GetComponent <MouseButton>();
        GameObject rightMouseButtonObject = Instantiate(mouseButtonPrefab, transform);

        rightMouseButton = rightMouseButtonObject.GetComponent <MouseButton>();

        leftMouseButton.Setup(0, mouseButtonLeftPressedTime);
        rightMouseButton.Setup(1, cameraDragTime);

        prefabsManager.AddPrefabs();
        interfaceManager.SetupUI(prefabsManager.GetPrefabTable());

        InitializeLevel(initialLevelWidth, initialLevelHeight);
        SetupLevel();
    }
    private void Initialize()
    {
        effectPoolTr = new GameObject().transform;
        effectPoolTr.gameObject.name = "EffectPool";
        effectPoolTr.parent          = transform;

        // 프리펩 매니저에 있는 이펙트 프리펩을 가져온다.
        var newDicEffect = PrefabsManager.GetInstance().dicEffectPrefabs;

        // 프리펩들을 돌면서 인스턴스를 생성한다.
        foreach (KeyValuePair <string, GameObject> e in newDicEffect)
        {
            // 같은 이름의 이펙트가 없다면.
            if (!this.dicEffect.ContainsKey(e.Key))
            {
                // 리스트를 생성하고.
                this.dicEffect.Add(e.Key, new Stack <GameObject>());

                // 리스트에 풀을 생성한다.
                for (int i = 0; i < effectCnt; i++)
                {
                    GameObject effect = GameObject.Instantiate(e.Value);
                    effect.transform.parent = effectPoolTr;
                    effect.SetActive(false);

                    this.dicEffect[e.Key].Push(effect);
                }
            }
        }
    }
Exemple #9
0
    void Awake()
    {
        instance = this;

        heavyWeapon   = new Weapon(30, WeaponType.heavy, heavyWeaponPrefab);
        regularWeapon = new Weapon(int.MaxValue, WeaponType.regular, regularWeaponPrefab, true);
    }
Exemple #10
0
 protected virtual void DeadEffect()
 {
     for (int i = 0; i < 9; i++)
     {
         Corpse corpse = PrefabsManager.SpawnCorpse(GetCorpseType());
         corpse.Init(transform.position);
     }
 }
Exemple #11
0
 void Awake()
 {
     prefabsManager = GameObject.FindGameObjectWithTag(Tags.PREFABS_MANAGER).GetComponent <PrefabsManager>();
     observable     = new FCObservable();
     movers         = new List <Mover> ();
     scaler         = GetComponent <Scaler> ();
     scaler.AddListener(this, FCEvent.END);
 }
Exemple #12
0
    void CreateGround(MapData data)
    {
        // 그라운드 생성.
        GameObject groundPrefab = PrefabsManager.GetInstance().dicGroundPrefabs[data.groundName];
        var        go           = Instantiate(groundPrefab, new Vector3(0, 0, 0), Quaternion.identity);

        go.transform.parent = mapTr;
    }
Exemple #13
0
        public override void Show(Room room)
        {
            view = GameObject.Instantiate
                   (
                PrefabsManager.LoadPrefab(PrefabsManager.PrefabsList.DestroyEnemyAbility)
                   ).GetComponent <DestroyEnemyView>();

            view.ShowView(room.WorldPosition);
        }
Exemple #14
0
 private static int[] GenerateChipIDs(int size, PrefabsManager manager)
 {
     int[] chipIDs = new int[size];
     for (int i = 0; i < size; i++)
     {
         chipIDs [i] = manager.GetRandomChipId();
     }
     return(chipIDs);
 }
Exemple #15
0
        public override void Show(Room room)
        {
            view = GameObject.Instantiate
                   (
                PrefabsManager.LoadPrefab(PrefabsManager.PrefabsList.DefaultHeal)
                   ).GetComponent <HealView>();

            view.ShowView(healValue, room.WorldPosition);
        }
Exemple #16
0
    public static PrefabsManager GetInstance()
    {
        if (PrefabsManager.instance == null)
        {
            PrefabsManager.instance = new PrefabsManager();
        }

        return(PrefabsManager.instance);
    }
Exemple #17
0
        public override void Show(Room room)
        {
            view = GameObject.Instantiate
                   (
                PrefabsManager.LoadPrefab(PrefabsManager.PrefabsList.DefaultArmor)
                   ).GetComponent <ArmorView>();

            view.ShowView(countArmor, room.WorldPosition);
        }
    IEnumerator CreateEffectImpl(string name, Vector2 pos, float size, bool isReverse)
    {
        // 딕셔너리에 키가 있는지 확인한다.
        if (!this.dicEffect.ContainsKey(name))
        {
            yield break;
        }

        // 입력받은 키의 밸류.
        // 즉 스택.
        Stack <GameObject> effects = this.dicEffect[name];

        // 스택이 0이라면.
        // 새로 생성해서 넣어놔야 한다.
        if (effects.Count <= 0)
        {
            for (int i = 0; i < effectCnt; i++)
            {
                // 프리펩은 프리펩 매니저를 통해 가져온다.
                GameObject effect = GameObject.Instantiate(PrefabsManager.GetInstance().dicEffectPrefabs[name]);
                effect.transform.parent = effectPoolTr;
                effect.SetActive(false);

                effects.Push(effect);
            }
        }

        // 이펙트를 하나 꺼내고.
        // 설정한다.
        // 반환할 이펙트
        GameObject newEffect = null;

        newEffect = effects.Pop();

        float newSize = Mathf.Clamp(size * 1.3f, 0.8f, 4f);

        pos.y -= size;
        newEffect.transform.localScale = new Vector3(newSize, newSize, newSize);
        newEffect.transform.position   = pos;

        if (isReverse)
        {
            var trParticle = newEffect.transform.Find("Particle System");

            if (trParticle != null)
            {
                trParticle.localScale = new Vector3(-1, 1, 1);
            }
        }

        newEffect.SetActive(true);

        yield return(new WaitForSeconds(3));

        newEffect.SetActive(false);
        effects.Push(newEffect);
    }
        public override void Show(Room room)
        {
            view = GameObject.Instantiate
                   (
                PrefabsManager.LoadPrefab(PrefabsManager.PrefabsList.DefaultEnemy)
                   ).GetComponent <CommonEnemyView>();

            CurrentPosition = room;
            view.ShowView(Damage, room.WorldPosition);
        }
Exemple #20
0
    public void SpawnEnemy(GameElement type)
    {
        BaseElementObject creep = PrefabsManager.SpawnUnit(type, true);

        //set at random position, for now
        creep.transform.position = enemySpawnPos[Random.Range(0, enemySpawnPos.Count)].transform.position;
        creep.Init(this, true, currentSpawnLevel);
        objectList.Add(creep);
        creep.ChargeAtObject(RequestTarget(creep));
    }
Exemple #21
0
 private void Awake()
 {
     gameState            = GetComponent <GameStateManager>();
     prefabs              = GetComponent <PrefabsManager>();
     uI                   = GetComponent <UIManager>();
     serializationManager = SerializationManager.Instance;
     drawNumber           = GetComponent <DrawNumberManager>();
     sprites              = GetComponent <SpritesManager>();
     components           = GetComponent <ComponentsManager>();
 }
    public virtual void Start()
    {
        if (prefabsManager == null)
        {
            prefabsManager = PrefabsManager.instance;
        }

        CreateTooltip();
        player = PlayerManager.player.transform;
    }
Exemple #23
0
    void Start()
    {
        prefabsManager = PrefabsManager.instance;

        currentWeapon = prefabsManager.regularWeapon;

        currentHealth = maxHealth - 50;

        SubscribeChange();
    }
Exemple #24
0
 private void SpriteInit()
 {
     for (int i = 0; i < panCount; i++)
     {
         this.mapPrefabName.Add(DataManager.GetInstance().dicMapData[this.userMapNum[i]].groundName);
         var groundPrefab = PrefabsManager.GetInstance().dicGroundPrefabs[mapPrefabName[i]];
         var sprite       = groundPrefab.GetComponentInChildren <SpriteRenderer>().sprite;
         this.mapSprite.Add(sprite);
     }
 }
Exemple #25
0
    public BaseProjectile CreateProjectile(ProjectileType type, bool _isEnemy, int _damage, Vector3 _startPos, BaseObject _attacker, Vector3 _endPos, BaseObject _target)
    {
        BaseProjectile projectile = PrefabsManager.SpawnProjectile(type);

        projectile.Init(type, _isEnemy, _damage);
        projectile.InitPosition(_startPos, _endPos);
        projectile.InitObjects(_attacker, _target);

        projectileList.Add(projectile);
        return(projectile);
    }
 void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else
     {
         Destroy(this);
     }
 }
Exemple #27
0
    void CreateEnvironment(MapData data)
    {
        // 환경 생성.
        for (int i = 0; i < data.listEnvirnment.Count; i++)
        {
            GameObject envirGo = PrefabsManager.GetInstance().dicEnvironmentPrefabs[data.listEnvirnment[i].name];
            Vector3    pos     = new Vector3(data.listEnvirnment[i].x, data.listEnvirnment[i].y, 0);

            var go = Instantiate(envirGo, pos, Quaternion.identity);
            go.transform.parent = mapTr;
        }
    }
Exemple #28
0
    /*
     * 필요한 데이터를 로드한다.
     * 필요한 프리펩을 로드한다.
     */

    private void Awake()
    {
        // 데이터 매니저를 생성해 놓는다.
        DataManager.GetInstance();
        PrefabsManager.GetInstance();

        // 사운드 로딩.
        if (YellowBean.SoundManager.Instance != null)
        {
            YellowBean.SoundManager.Instance.Init();
        }
    }
Exemple #29
0
    /**
     * Generates a list of IDs guaranteeing that at least two different IDs exist as long
     * as the prefabs manager contains at least two different IDs
     */
    private static int[] GenerateNonIdenticalChipIDs(int size, PrefabsManager manager)
    {
        if (manager.chipPrefabs.Length < 2)
        {
            throw new UnityException("Not enough chip prefabs to generate a non-identical stack");
        }

        int[] chipIDs = GenerateChipIDs(size, manager);
        while (AllValuesAreTheSame(chipIDs))
        {
            chipIDs [0] = manager.GetRandomChipId();
        }
        return(chipIDs);
    }
    public BaseObject SpawnUnit(ObjectType objectType)
    {
        if (objectList.Count >= GameConstant.enemySpawnCap)
        {
            return(null);
        }
        BaseObject creep = PrefabsManager.SpawnUnit(objectType);

        //set at random position, for now
        creep.transform.position = enemySpawnPos[Random.Range(0, enemySpawnPos.Count)].transform.position;
        creep.Init(this, true, currentSpawnLevel);
        objectList.Add(creep);
        creep.ChargeAtObject(RequestTarget(creep), false);
        creep.transform.parent = transform;
        return(creep);
    }
Exemple #31
0
 // Use this for initialization
 void Start()
 {
     effectsManager = effectsManagerGO.GetComponent<EffectsManager> ();
     table = tableGO.GetComponent<Table> ();
     prefabsManager = prefabsManagerGO.GetComponent<PrefabsManager> ();
     Almighty.registerGameManager (this);
 }