Exemple #1
0
    public void ShootBall()
    {
        if (MoveState == ePlayerState.Move)
        {
            return;
        }

        _instArrow.transform.localScale = new Vector3(0, 0, 0);
        isClickOn = false;

        Vector2 direction = _instArrow.transform.rotation * new Vector2(1, 0.0f) * _powerSize;



        BasketBallGame.BasketBall ball = _ballFactory.Get() as BasketBallGame.BasketBall;
        ball.ShotToTarget(direction);
        ball.Activate(transform.position, BasketBallGame.EBallOwner.LeftPlayer, "Ball");
        ball.destroyed += OnBallDestroyed;

        if (!NetworkManager.Instance.IsSinglePlay())
        {
            NetworkManager.Instance.SendRequestFireBall(_powerSize, direction.x, direction.y);
        }

        _powerSize = 0.0f;
    }
Exemple #2
0
        public static IVariablePool GetVariablePool(string sessionID, string keyID)
        {
            IVariablePool rVP = null;

            PoolFactory.Get(sessionID, keyID, out rVP);

            return(rVP);
        }
    public static void Spawn(EffectId id, Transform target, float durationTime, params object[] values)
    {
        var key    = id.Id2key();
        var entity = PoolFactory.Get <Effect>(key, Vector3.zero, Quaternion.identity);

        entity.OnReturn = Return;
        entity.Spawn(key, target, durationTime, values);
    }
Exemple #4
0
        public void ShootBall()
        {
            Vector2 direction = directionArrow.transform.rotation * new Vector2(aiFireSpeed, 0.0f) * _powerSize;

            _powerSize = 0.0f;

            BasketBall ball = _ballFactory.Get() as BasketBall;

            ball.Activate(transform.position, EBallOwner.RightPlayer, "AIBall");
            ball.ShotToTarget(direction);
            ball.destroyed += OnBallDestroyed;
        }
Exemple #5
0
    public virtual void ShotMissile(int cubeSeq, int monsterSeq)
    {
        var cube    = cubes.Find(x => x.gameCube.CubeSeq == cubeSeq);
        var monster = monsters.Find(x => x.seq == monsterSeq);

        if (cube == null || monster == null)
        {
            return;
        }

        var missile = PoolFactory.Get <Missile>("Missile", cube.transform.position, Quaternion.identity, transform);

        missile.OnHit = OnHit;
        missile.Spawn(cube, monster);
        missiles.Add(missile);

        cube.Shot(missile);
    }
Exemple #6
0
    public virtual Monster CreateMonster()
    {
        var paths         = zone.paths;
        var startPosition = zone.paths.FirstOrDefault().transform.position;
        var position      = new Vector3(startPosition.x, startPosition.y, 0f);
        var monster       = PoolFactory.Get <Monster>("Monster", position, Quaternion.identity, transform);

        monster.OnDie    = OnDie;
        monster.OnEscape = OnEscape;
        monster.Spawn(user.MonsterSeq);
        monster.Move(paths);

        monsters.Add(monster);

        user.MonsterSeq++;

        return(monster);
    }
Exemple #7
0
    public virtual Cube CreateCube(GameCube gameCube)
    {
        var position = Server2Local(new Vector3(gameCube.PositionX, gameCube.PositionY, 0f));
        var gameSlot = user.Slots.Find(x => x.CubeId == gameCube.CubeId);
        var cube     = PoolFactory.Get <Cube>("Cube", position, Quaternion.identity, transform);

        cube.OnMove        = OnMove;
        cube.OnCombineMove = OnCombineMove;
        cube.OnCombine     = OnCombine;
        cube.OnShot        = OnShot;
        cube.Spawn(user.Id, gameCube, gameSlot);
        cubes.Add(cube);

        user.Cubes.Add(gameCube);
        if (gameCube.CombineLv == 1)
        {
            user.SP -= ServerDefine.CubeSeq2NeedSP(user.CubeSeq);
        }

        user.CubeSeq++;

        return(cube);
    }