Esempio n. 1
0
        public override void CreateDeafaultModel()
        {
            AvatarModelData data       = AvatarModelData.dataMap[999];
            GameObject      gameObject = AssetCacheMgr.GetLocalInstance(data.prefabName) as GameObject;

            ActorPlayer actor = gameObject.AddComponent <ActorPlayer>();

            motor    = gameObject.AddComponent <MogoMotorServer>();
            animator = gameObject.GetComponent <Animator>();

            sfxHandler = gameObject.AddComponent <SfxHandler>();

            // GearEffectListener作用已经交由ActorMyself处理,不需要增加这个脚本了
            // gameObject.AddComponent<GearEffectListener>();

            //actor.mogoMotor = motor;
            actor.theEntity = this;
            GameObject      = gameObject;
            Transform       = gameObject.transform;

            Debug.LogError(GameObject.name + " " + ID + " Player CreateDeafaultModel: " + Transform.position);

            this.Actor           = actor;
            Transform.localScale = scale;
            Transform.tag        = "OtherPlayer";
            UpdatePosition();
            base.CreateModel();
        }
Esempio n. 2
0
    public Actor AddActor(int id, EActorType type, EBattleCamp camp, XTransform param, bool isMainPlayer = false)
    {
        Actor pActor = null;

        if (isMainPlayer)
        {
            pActor = new ActorMainPlayer(id, 100, EActorType.PLAYER, camp);
            pActor.Load(param);

            object[]         args   = new object[] { pActor.CacheTransform.transform };
            CameraEffectBase effect = MainCamera.GetComponent <CameraFollow>();
            effect.Init(0, MainCamera, null, args);
        }
        else
        {
            pActor = new ActorPlayer(id, 100, type, camp);
            pActor.Load(param);
        }

        if (pActor.CacheTransform != null)
        {
            Debug.LogError("添加人物" + pActor.ActorType);
            //pActor.CacheTransform.parent = GetHolder(EMapHolder.Role).transform;
            AllActors.Add(pActor);
            //LevelData.CampActors[camp].Add(pActor);
        }
        return(pActor);
    }
    public void Start()
    {
        _playerBody  = GetComponent <ActorPlayer>();
        lineRenderer = GetComponent <LineRenderer>();

        hookSpring.enabled = false;
    }
    void OnTriggerStay2D(Collider2D other)
    {
        if (damageCountdown > 0)
        {
            switch (other.tag)
            {
            case "Player":
                PlayerHealth    playerHealth     = other.GetComponent <PlayerHealth>();
                ActorPlayer     otherActorPlayer = other.GetComponent <ActorPlayer>();
                VibrateJoystick otherJoystick    = other.GetComponent <VibrateJoystick>();
                //Debug.Log("Hurt Player" + actorPlayer.input.facingDirection);
                playerHealth.Hurt(0, new Vector2(actorPlayer.inpt.facingDirection * 15 * DirectionalPush.x, input.AxisY() * DirectionalPush.y));
                otherJoystick.SetVibrating(true);
                otherActorPlayer.isStunned = true;
                jet.SmallRefill();
                break;

            case "Enemy":
                EnemyHealth enemyHealth = other.GetComponent <EnemyHealth>();
                if (enemyHealth != null)
                {
                    //Debug.Log("Hurt Enemy" + actorPlayer.input.facingDirection);
                    enemyHealth.Hurt(damage, actorPlayer.input.facingDirection);
                }
                break;
            }
        }
    }
    //SpriteRenderer r;

    // Use this for initialization
    void Awake()
    {
        ap    = GetComponentInParent <ActorPlayer>();
        pos   = transform.localPosition;
        scale = transform.localScale;
        //r = GetComponent<SpriteRenderer>();
    }
Esempio n. 6
0
    public override void Tick()
    {
        if (votedCommands.Count > 0)
        {
            NextCommand = votedCommands.Keys.OrderByDescending(x => votedCommands[x]).First();
            votedCommands.Clear();
        }
        else
        {
            if (GameManager.playerDictionary.Count > 0)
            {
                ActorPlayer desiredPlayer = BoardMethod.GetClosestPlayer(currentPosition);
                if (desiredPlayer != null)
                {
                    NextCommand = BoardMethod.GetCommandTowardsTile(currentPosition, desiredPlayer.currentPosition);
                }
            }
            else
            {
                NextCommand = (Commands)Random.Range(0, 5);
            }
        }

        base.Tick();
    }
    public override void Collect()
    {
        base.Collect();

        Player player = GameObject.FindGameObjectWithTag("player_parent").GetComponent <Player>();

        switch (modify)
        {
        case Modify.Essence:
            player.essence += (int)value;
            break;

        case Modify.Coins:
            player.coins += (int)value;
            break;

        case Modify.Health:
            ActorPlayer actor = GameObject.FindGameObjectWithTag("player").GetComponent <ActorPlayer>();
            actor.health.Increment(value);
            actor.healthDisplay.UpdateHealth(actor.health.value);
            break;
        }

        player.UpdateUI();
        anim.Play("collect");
    }
Esempio n. 8
0
    /// <summary>
    /// Spawn player for the desired username using ObjectPool pooling system.
    /// Find a random empty spot on the board and move the newly spawned player there.
    /// </summary>
    /// <param name="username">desired username for player</param>
    /// <returns>Spawned Player Prefab.</returns>
    public Actor SpawnPlayer(string username)
    {
        //If there is already a player with that username don't spawn it.
        if (playerDictionary.ContainsKey(username))
        {
            return(null);
        }

        //Spawn Player Object.
        ActorPlayer spawnedPlayer = playerPrefab.Spawn();

        //Set position.
        spawnedPlayer.currentPosition = BoardMethod.GetRandomTile();
        Tile emptyTile = BoardMethod.GetTile(spawnedPlayer.currentPosition);

        spawnedPlayer.transform.position = emptyTile.transform.position;

        spawnedPlayer.spriteRenderer.color = Color.white;

        //Set username.
        spawnedPlayer.actorName = username;

        //Add to dictionary so we can reference it later by username.
        playerDictionary.Add(username, spawnedPlayer);

        return(spawnedPlayer);
    }
Esempio n. 9
0
    public void BoostStats()
    {
        ActorPlayer player = GetComponentInParent <ActorPlayer>();

        foreach (StatChange effect in effects)
        {
            switch (effect.stat)
            {
            case StatChange.StatToChange.health:
                Apply(player.health, effect.modify, effect.modifier);
                UI_Health_Display.instance.UpdateHealth(player.health.value);
                break;

            case StatChange.StatToChange.damage:
                Apply(player.damageModifier, effect.modify, effect.modifier);
                break;

            case StatChange.StatToChange.speed:
                Apply(player.speed, effect.modify, effect.modifier);
                break;

            case StatChange.StatToChange.luck:
                Apply(player.luck, effect.modify, effect.modifier);
                break;
            }
        }
    }
Esempio n. 10
0
    private void Awake()
    {
        _actorPlayer        = GetComponent <ActorPlayer>();
        _shipMovement       = GetComponent <MovementKrister>();
        _weapon             = GetComponent <Weapon>();
        _grappleHookShooter = GetComponent <GrappleHookShooter>();

        SetPlayerControls();
    }
Esempio n. 11
0
    protected void SetPlayerActor(ActorPlayer actorPlayer, Action logicCallback)
    {
        AvatarModel avatarModel = DataReader <AvatarModel> .Get(this.FixModelID);

        base.Actor            = actorPlayer;
        actorPlayer.theEntity = this;
        base.Actor.FixGameObject.set_name(base.ID.ToString());
        base.Actor.FixGameObject.SetActive(true);
        base.Actor.InitActionPriorityTable();
        base.Actor.CanAnimatorApplyMotion = false;
        base.Actor.DataLayerState         = ((avatarModel.collideOff <= 0) ? 0 : 1);
        base.Actor.DefaultModelHeight     = avatarModel.defaultModelHeight;
        base.Actor.ModelHeight            = avatarModel.defaultModelHeight;
        base.Actor.IsLockModelDir         = (avatarModel.lockDirection == 1);
        base.Actor.RotateSpeed            = avatarModel.RotateSpeed;
        base.Actor.RotateInterval         = (float)avatarModel.rotateInterval;
        base.Actor.StartRotateAngle       = (float)avatarModel.startAngle;
        base.Actor.FinishRotateAngle      = (float)avatarModel.finishAngle;
        base.Actor.FloatRate = avatarModel.floatProba;
        ShadowController.ShowShadow(base.ID, base.Actor, false, this.FixModelID);
        ShaderEffectUtils.InitShaderRenderers(base.Actor.FixTransform, this.shaderRenderers, ref this.shadowRenderer, ref this.shadowSlicePlane);
        ShaderEffectUtils.InitHitEffects(this.shaderRenderers, this.hitControls);
        ShaderEffectUtils.InitTransparencys(this.shaderRenderers, this.alphaControls);
        ShaderEffectUtils.SetFadeRightNow(this.alphaControls, false);
        ShaderEffectUtils.SetOutlineStatus(base.Actor.FixTransform, LuminousOutline.Status.Normal);
        if (avatarModel.curve == 1)
        {
            ShaderEffectUtils.SetMeshRenderToLayerFXDistortion(base.Actor.FixTransform);
        }
        this.InitBillboard((float)avatarModel.height_HP, avatarModel.bloodBar);
        WaveBloodManager.Instance.AddWaveBloodControl(base.Actor.FixTransform, (float)avatarModel.height_Damage, base.ID);
        if (this.IsInBattle)
        {
            if (this.IsDead)
            {
                CommandCenter.ExecuteCommand(base.Actor.FixTransform, new PlayActionCmd
                {
                    actName    = "die",
                    jumpToPlay = true,
                    percent    = 1f
                });
            }
            else
            {
                base.Actor.CastAction("born", true, 1f, 0, 0, string.Empty);
            }
        }
        else
        {
            base.Actor.CastAction("idle", true, 1f, 0, 0, string.Empty);
        }
        if (logicCallback != null)
        {
            logicCallback.Invoke();
        }
        this.InitActorState();
    }
Esempio n. 12
0
 public override void Showing()
 {
     // create our player
     sprites = Parent.Content.Load<Texture2D>("sprites");
     player = ActorPlayer.Create(Parent.GraphicsDevice.Viewport.Bounds);
     ActorRock.RemoveAllRocks();
     ActorBullet.RemoveAllBullets();
     ActorEnemy.RemoveAllEnemies();
 }
Esempio n. 13
0
 void Start()
 {
     input              = GetComponent <InputListener>();
     jetpack            = GetComponent <Jetpack>();
     jetpackDustInitPos = jetpackDust.transform.localPosition;
     anim         = sprite.GetComponent <Animator>();
     playerScript = GetComponent <ActorPlayer>();
     CC           = GetComponent <CharacterController2D>();
     myHealth     = GetComponent <PlayerHealth>();
 }
Esempio n. 14
0
 void Start()
 {
     input             = GetComponentInParent <InputListener>();
     r                 = GetComponent <SpriteRenderer>();
     actorPlayer       = GetComponentInParent <ActorPlayer>();
     anim              = GetComponent <Animator>();
     cooldownCountdown = cooldown;
     damageCountdown   = 0;
     jet               = GetComponentInParent <Jetpack>();
     //CC.GetComponentInParent<CharacterController2D>();
 }
Esempio n. 15
0
    public new ActorPlayer clone()
    {
        ActorPlayer result = new ActorPlayer();

        result.row         = this.row;
        result.col         = this.col;
        result.type        = this.type;
        result.currentTile = this.currentTile;

        return(result);
    }
Esempio n. 16
0
    /// <summary>
    /// 毎フレーム呼ばれる処理
    /// </summary>
    /// <param name="arg_player">Argument player.</param>
    public void OnUpdate(ActorPlayer arg_player)
    {
        arg_player.transform.position =
            new Vector2(arg_player.colPlayerOBject.transform.position.x,
                        arg_player.transform.position.y);

        //パイプから離れたら通常に戻る
        if (arg_player.ExitCollider)
        {
            arg_player.StateTransion(new PlayerIdle());
        }
    }
Esempio n. 17
0
    private void Awake()
    {
        _actor = GetComponent <ActorPlayer>();

        _transform           = transform;
        weaponSocket         = _transform.Find(weaponSocketName);
        weaponParticleSystem = GetComponentInChildren <ParticleSystem>();

        _timeBetweenShots = 60f / roundsPerMinute;

        // Move this to Input script later.
        //fireWeapon.performed += ctx => StartShooting();
        //fireWeapon.canceled += ctx => StopShooting();
    }
Esempio n. 18
0
    /// <summary>
    /// 毎フレーム呼ばれる処理
    /// </summary>
    /// <param name="arg_player"></param>
    public void OnUpdate(ActorPlayer arg_player)
    {
        //フリックでボールショット
        if (arg_player.m_touchZone.flicking)
        {
            arg_player.ballObject.StateTransion(new BallShot());
        }

        //入力が無ければ通常へ戻る
        if (!arg_player.m_touchZone.pressing)
        {
            arg_player.StateTransion(new PlayerIdle());
        }
    }
Esempio n. 19
0
 protected virtual void UpdateActor(Action logicCallback = null)
 {
     this.DestoryOldPlayerActor();
     if (this.IsClientDominate)
     {
         base.AsyncLoadID = EntityWorld.Instance.GetPlayerActorAsync(this.FixModelID, delegate(ActorPlayer newActor)
         {
             this.SetPlayerActor(newActor, logicCallback);
         });
     }
     else
     {
         ActorPlayer playerActor = EntityWorld.Instance.GetPlayerActor(this.FixModelID);
         this.SetPlayerActor(playerActor, logicCallback);
     }
 }
Esempio n. 20
0
 public void GenetareActionPlayer(List <PlayerRecord> playerRecords)
 {
     for (int i = 0; i < playerRecords.Count; i++)
     {
         PlayerRecord temp   = playerRecords[i];
         ActorPlayer  player = Instantiate(PlayerPrefabHolder.instance.m_ActorPlayerPrefab, m_ActorPlayerTransform);
         player.playerIndex     = temp.id;
         player.gameObject.name = temp.id.ToString();
         player.SetPivot(temp.scenarionActorPivotType);
         player.SetPivot();
         player.SetPlayerModel();
         player.SetPlayerValue(temp, null);
         m_ActorPlayers.Add(player);
         m_DicActorPlayers.Add(temp.id, player);
     }
 }
Esempio n. 21
0
    private void MakeStaticInstance()
    {
        if (isPersistentDontDestroyOnLoad)
        {
            DontDestroyOnLoad(this);
        }

        if (Instance != null && Instance != this)
        {
            Destroy(gameObject);
        }
        else
        {
            Instance = this;
        }
    }
Esempio n. 22
0
    public static ActorPlayer GetClosestPlayer(TilePosition current)
    {
        Dictionary <TilePosition, int> ProcessedTiles = GetTileStepsDictionary(current, current);
        ActorPlayer closestPlayer   = null;
        int         closestDistance = 99999;

        foreach (ActorPlayer _player in GameManager.playerDictionary.Values)
        {
            if (ProcessedTiles.ContainsKey(_player.currentPosition) && ProcessedTiles[_player.currentPosition] < closestDistance)
            {
                closestDistance = ProcessedTiles[_player.currentPosition];
                closestPlayer   = _player;
            }
        }

        return(closestPlayer);
    }
Esempio n. 23
0
    public Actor AddActor(int id, EActorType type, EBattleCamp camp, XTransform param, List <Vector3> PatrolGroups, bool isMainPlayer = false)
    {
        int   guid   = GetGUID();
        Actor pActor = null;

        switch (type)
        {
        case EActorType.PLAYER:
        {
            if (isMainPlayer)
            {
                pActor = new ActorMainPlayer(id, guid, EActorType.PLAYER, camp, null);
            }
            else
            {
                pActor = new ActorPlayer(id, guid, EActorType.PLAYER, camp, null);
            }
        }
        break;

        case EActorType.MONSTER:

            pActor = new Actor(id, guid, type, camp, PatrolGroups);
            break;
        }
        if (pActor != null)
        {
            param.Position = GTTools.NavSamplePosition(param.Position);
            pActor.Load(param);
            if (pActor.CacheTransform != null)
            {
                pActor.CacheTransform.parent = GetHolder(EMapHolder.Role).transform;
                LevelData.AllActors.Add(pActor);
                LevelData.CampActors[camp].Add(pActor);
            }
        }
        return(pActor);
    }
Esempio n. 24
0
    /// <summary>
    /// 毎フレーム呼ばれる処理
    /// </summary>
    /// <param name="arg_player">Argument player.</param>
    public void OnUpdate(ActorPlayer arg_player)
    {
        //落下状態は例外として最優先する
        if (arg_player.colPlayerOBject)
        {
            if (arg_player.colPlayerOBject.tag == "Paipu")
            {
                arg_player.StateTransion(new PlayerFall());
            }
        }

        //入力が無い場合は
        else if (!arg_player.m_touchZone.pressing && !arg_player.m_touchZone.longpressing)
        {
            arg_player.StateTransion(new PlayerIdle());
        }

        //プレスのみの場合は通常移動
        else if (arg_player.m_touchZone.pressing)
        {
            arg_player.StateTransion(new PlayerRun());
        }//入力が何もない場合デフォルト状態
    }
Esempio n. 25
0
    private void Recover()
    {
        Diglbug.Log("Beginning Recovery...", PrintStream.RECOVERY);
//		RecoverSignature ();

        runningRecovery = false;
        ShowUnderway();

        if (ShowMode.Instance.Mode.ModeName == ModeName.GUIDE)
        {
            RecoverSignature();
            BLE.Instance.ClearPreviousSignalsFound();
            BLE.Instance.Manager.RecoverySendPreviousSignal(GetPreviousSignal());
            Diglbug.Log("Guide recovery complete");
        }
        else if (ShowMode.Instance.Mode.ModeName == ModeName.ACTOR)
        {
            BLE.Instance.ClearPreviousSignalsFound();
            ActorPlayer player = FindObjectOfType <ActorPlayer> ();
            if (player != null)
            {
                player.ClearPreviousSignals();
                player.SetActor((Actor)PlayerPrefs.GetInt(lastActorKey, 0));
            }
            else
            {
                Diglbug.Log("Unexpected lack of ActorPlayer object during Actor Recovery.");
            }
            RecoverFromMostRecentSignal();
            Diglbug.Log("Actor recovery complete, waiting for signals");
        }
        else
        {
            RecoverFromMostRecentSignal();
            Diglbug.Log("Recovery complete - waiting to pick up signals");
        }
    }
Esempio n. 26
0
 public MountEntityData(int entityId, int typeId, ActorType actorType, BattleCampType campType, ActorPlayer host) : base(entityId, typeId, actorType, campType)
 {
     Host = host;
 }
Esempio n. 27
0
 public MoveHistory(ActorPlayer p, Tile t)
 {
     this.player = p;
     this.tile   = t;
 }
Esempio n. 28
0
 /// <summary>
 /// ステート終了時の処理
 /// </summary>
 /// <param name="arg_player">Argument player.</param>
 public void OnExit(ActorPlayer arg_player)
 {
 }
Esempio n. 29
0
 /// <summary>
 /// ステート終了時の処理
 /// </summary>
 /// <param name="arg_player">Argument player.</param>
 public void OnExit(ActorPlayer arg_player)
 {
     arg_player.colPlayerOBject = null;
     arg_player.ExitCollider    = false;
 }
Esempio n. 30
0
    //Build the indicated level
    public void loadLevel(int level)
    {
        //Hide the play area
        loadingScreen.enabled = true;

        //Destroy any previous existing game objects
        for (int i = 0; i < boardObj.Count; i++)
        {
            for (int j = 0; j < boardObj[i].Count; j++)
            {
                Destroy(boardObj[i][j]);
                Destroy(boardTiles[i][j]);
            }
        }

        //Reset the references to the objects
        board      = new List <List <Tile> >();
        boardObj   = new List <List <GameObject> >();
        boardTiles = new List <List <GameObject> >();

        //Read the level file to find out what the level needs
        string assetText;

        using (var streamReader = new StreamReader("Assets/Levels/" + level.ToString() + ".txt", Encoding.UTF8))
        {
            assetText = streamReader.ReadToEnd();
        }

        var lines = assetText.Split('\n');

        width  = lines[0].Split('~').Length;
        height = lines.Length;

        //Go through each row
        for (int i = 0; i < height; i++)
        {
            var               singleTiles = lines[i].Split('~');
            List <Tile>       row         = new List <Tile>(width);
            List <GameObject> tileRow     = new List <GameObject>(width);

            //Go through each individual tile and create it
            for (int j = 0; j < width; j++)
            {
                Tile tile = TileFactoryMethods.TileFactory((TileType)Int32.Parse(singleTiles[j]));

                tile.setPos(i, j);
                row.Add(tile);

                //Create the object and store the returned reference
                //tileRow.Add(Instantiate(GameGraphics.BackGroundTile, new Vector3(i, j, .01f), Quaternion.identity));
            }

            board.Add(row);
            boardTiles.Add(tileRow);
        }

        //Reset the player
        player             = new ActorPlayer();
        player.currentTile = board[0][0];

        //Reset the history stack
        history = new Stack <MoveHistory>();

        //Draw Screen
        for (int col = width - 1; col >= 0; col--)
        {
            List <GameObject> objRow = new List <GameObject>();

            for (int row = 0; row < height; row++)
            {
                //GameObject obj = Instantiate(GameGraphics.MudTile, new Vector3(row, col, 0), Quaternion.identity);
                //objRow.Add(obj);
            }

            boardObj.Add(objRow);
        }

        //Reset the camera
        //This works for even numbered grids
        Vector3 newCamPos = new Vector3(width / 2 - 0.5f, height / 2, -7.5f);

        if (width % 2 == 1)
        {
            newCamPos.x += 0.5f;
        }
        if (height % 2 == 1)
        {
            newCamPos.y += 0.5f;
        }

        Camera.main.transform.position = (newCamPos);

        //Loading has finished so release the play area
        loadingScreen.enabled = false;
    }
Esempio n. 31
0
 /// <summary>
 /// ステート開始時の処理
 /// </summary>
 /// <param name="arg_player">Argument player.</param>
 public void OnEnter(ActorPlayer arg_player)
 {
 }