Esempio n. 1
0
    private void FreezeCompanions(int amount)
    {
        List <int> list = new List <int>();

        for (int i = 1; i < Singleton <HeroUnlockRunner> .Instance.NumUnlockedHeroes.Value; i++)
        {
            if (!frozenCompanions.Contains(i))
            {
                list.Add(i);
            }
        }
        int count = list.Count;

        for (int j = 0; j < amount && j < count; j++)
        {
            int freezeIndex = list[UnityEngine.Random.Range(0, list.Count)];
            AbstractCreatureController orCreateCreature = Singleton <CreatureCollectionRunner> .Instance.GetOrCreateCreature(freezeIndex);

            orCreateCreature.Freeze();
            frozenCompanions.Add(freezeIndex);
            list.Remove(freezeIndex);
            (from index in Singleton <DrJellyRunner> .Instance.UnfrozenCompanionIndex.Skip(1)
             where index == freezeIndex
             select index).Take(1).Subscribe(delegate(int index)
            {
                frozenCompanions.Remove(index);
            }).AddTo(this);
        }
    }
Esempio n. 2
0
    private AbstractCreatureController CreateCreature(int heroIndex)
    {
        GameObject gameObject = Singleton <PropertyManager> .Instance.InstantiateFromResources(GetPrefabPath(heroIndex), Vector3.zero, Quaternion.identity, null);

        AbstractCreatureController componentInChildren = gameObject.GetComponentInChildren <AbstractCreatureController>();

        componentInChildren.Init(heroIndex, CreatureStateEnum.Enter);
        return(componentInChildren);
    }
Esempio n. 3
0
    public bool CollidesAnyAliveExcept(Vector3 pos, int heroIndex)
    {
        for (int i = 0; i < Singleton <EconomyHelpers> .Instance.GetNumHeroes(); i++)
        {
            if (i != heroIndex)
            {
                HeroRunner orCreateHeroRunner = Singleton <HeroTeamRunner> .Instance.GetOrCreateHeroRunner(i);

                if (!orCreateHeroRunner.Found.Value)
                {
                    return(false);
                }
                AbstractCreatureController orCreateCreature = GetOrCreateCreature(i);
                if (orCreateCreature.Collides(pos))
                {
                    return(true);
                }
            }
        }
        return(false);
    }
Esempio n. 4
0
    private Vector3 GetHeroPosition(int heroIndex)
    {
        AbstractCreatureController orCreateCreature = Singleton <CreatureCollectionRunner> .Instance.GetOrCreateCreature(heroIndex);

        return(orCreateCreature.GetTargetPosition());
    }