コード例 #1
0
    protected override void Process(GameEventEntity entity)
    {
        var e = entity.eventMoveDeckCard;

        if (e.TargetPlayerEntity != null)
        {
            e.CardEntity.ReplaceOwner(e.TargetPlayerEntity);
        }
        else
        {
            e.CardEntity.RemoveOwner();
        }

        if (e.IsInBox)
        {
            e.CardEntity.AddInBox(0);
        }
        else
        {
            if (e.CardEntity.hasInBox)
            {
                e.CardEntity.RemoveInBox();
            }
        }
    }
コード例 #2
0
    //设置当前的事件
    public void setCurrentTag(int tag)
    {
        currentEventTag = tag;
        foreach (GameEventEntity gameEvent in eventList)
        {
            if (gameEvent.tag == currentEventTag)
            {
                currentGameEvent = gameEvent;
                //背景
                Texture2D texture = Resources.Load(("Images/GameScene/background/" + gameEvent.background)) as Texture2D;
                backgroundImage.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero);
                //人物
                if (gameEvent.characters == null || gameEvent.characters.Length == 0)
                {
                    roleImage.sprite = null;
                    roleImage.color  = new Color(255, 255, 255, 0);
                }
                else if (gameEvent.characters.Length == 1)
                {
                    roleImage.color  = new Color(255, 255, 255, 255);
                    texture          = Resources.Load(("Images/GameScene/role/" + gameEvent.characters[0])) as Texture2D;
                    roleImage.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero);
                }
                //对话
                currentTextIndex = 0;
                if (gameEvent.textList.Length > currentTextIndex)
                {
                    setText(gameEvent.textList[0]);
                }

                return;
            }
        }
        Debug.Log("没有事件" + tag);
    }
コード例 #3
0
    void Update()
    {
        bool            isReload        = false;
        GameEventEntity gameEventEntity = null;

        GameEventEntity[] entitiesGameEvent = _groupGameEvent.GetEntities();
        if (entitiesGameEvent.Length != 0)
        {
            gameEventEntity = entitiesGameEvent[0];
            if (gameEventEntity.stateEvent.state == "Reload Ready")
            {
                isReload = true;
            }
        }

        if (isReload)
        {
            gameEventEntity.Destroy();
            SceneManager.LoadScene(SceneManager.GetActiveScene().name);
        }
        else
        {
            _systems.Execute();
        }
    }
コード例 #4
0
    private static void FromJsonOverwirte(string text, GameController this_)
    {
        JObject jobject = JObject.Parse(text);

        if (jobject != null)
        {
            JToken startTagObj = jobject["startTag"];
            if (startTagObj != null)
            {
                this_.startTag = int.Parse(startTagObj.ToString());
            }
            JArray eventList = jobject["eventList"] != null ? (JArray)jobject["eventList"] : null;
            if (eventList != null)
            {
                this_.eventList = new GameEventEntity[eventList.Count];
                for (int i = 0; i < eventList.Count; i++)
                {
                    JObject         token2 = (JObject)eventList[i];
                    GameEventEntity entity = this_.eventList[i] = new GameEventEntity();
                    entity.FromJSON(token2);
                    //GzSSOSession.selectAccList.Add(selectAccList[i].ToString());
                }
            }
        }
    }
コード例 #5
0
    protected override void Process(GameEventEntity entity)
    {
        var weatherEvent = entity.eventCreateWeather;

        _contexts.game.ReplaceWeather(weatherEvent.Type);
        _contexts.game.ReplaceWeatherCost(weatherEvent.CostMap);
    }
コード例 #6
0
 protected override void Execute(List <InputEntity> entities)
 {
     if (entities.Count == 1)
     {
         GameEventEntity[] entitiesGameEvent = _groupGameEvent.GetEntities();
         GameEventEntity   entitieGameEvent  = entitiesGameEvent[0];
         entitieGameEvent.ReplaceStateEvent("Death");
     }
 }
コード例 #7
0
    protected override void Process(GameEventEntity entity)
    {
        var cardEvent  = entity.eventUseCardOnUnit;
        var cardEntity = cardEvent.CardEntity;
        var ability    = (ActiveAbility <UnitEntity>)cardEntity.ability.Ability;

        ability.OnTargetSelected(cardEvent.UserEntity, cardEvent.TargetEntity);

        if (cardEntity.hasAbilityEffect)
        {
            IAbilityAnimation animation = ability as IAbilityAnimation;
            if (animation == null)
            {
                var effect = Object.Instantiate(
                    cardEntity.abilityEffect.EffectObject,
                    cardEvent.TargetEntity.view.GameObject.transform, false
                    ).GetComponent <AbilityEffect>();
                effect.PlayAnimation();
            }
            else
            {
                var effect = cardEntity.abilityEffect.EffectObject;
                animation.PlayAnimation(effect, cardEvent.UserEntity, cardEvent.TargetEntity);
            }
        }
        //if (cardEntity.hasAbilityEffect)
        //{

        //	var effect = Object.Instantiate(
        //		cardEntity.abilityEffect.EffectObject,
        //		cardEvent.TargetEntity.view.GameObject.transform, false
        //	).GetComponent<AbilityEffect>();

        //	effect.PlayAnimation();
        //}

        if (cardEntity.hasDeckCard)
        {
            RemovePlayerCard(cardEntity);
        }

        var msg = string.Format("{0} use {1}",
                                cardEvent.UserEntity.owner.Entity.player,
                                cardEntity.cardDescription.Name
                                );

        if (cardEvent.TargetEntity != cardEvent.UserEntity)
        {
            msg += " to " + cardEvent.TargetEntity.owner.Entity.player;
        }

        EventLogger.ShowMessge(msg);
    }
コード例 #8
0
 public void Execute()
 {
     GameEventEntity[] entities = _groupEvent.GetEntities();
     if (entities.Length != 0)
     {
         GameEventEntity entity = entities[0];
         if (entity.stateEvent.state == "Game")
         {
             foreach (GameEntity e in _groupMovable.GetEntities())
             {
                 var move = e.move;
                 var pos  = e.position;
                 e.ReplacePosition(pos.x - move.speed, pos.y, pos.z);
             }
         }
     }
 }
コード例 #9
0
    protected override void Execute(List <GameEntity> entities)
    {
        foreach (GameEntity e in entities)
        {
            if (e.hasView)
            {
                e.view.gameObject.Unlink();
            }
            e.Destroy();
        }

        GameEventEntity gameEventEntity = null;

        GameEventEntity[] gameEventEntities = _groupGameEvent.GetEntities();
        if (gameEventEntities.Length != 0)
        {
            gameEventEntity = gameEventEntities[0];
            if (gameEventEntity.stateEvent.state == "Reload")
            {
                gameEventEntity.ReplaceStateEvent("Reload Ready");
            }
        }
    }
コード例 #10
0
    protected override void Process(GameEventEntity entity)
    {
        var cycler = new TurnRoundCycler(_gameContext);

        cycler.Cycle();
    }
コード例 #11
0
 protected override bool Filter(GameEventEntity entity)
 {
     return(entity.isEventEndTurn);
 }
コード例 #12
0
 protected override bool Filter(GameEventEntity entity)
 {
     return(entity.hasEventUseCardOnUnit);
 }
コード例 #13
0
 protected override bool Filter(GameEventEntity entity)
 {
     return(entity.hasEventCreateWeather);
 }
コード例 #14
0
 protected override bool Filter(GameEventEntity entity)
 {
     return(entity.hasEventMoveDeckCard);
 }
コード例 #15
0
    protected override void Process(GameEventEntity entity)
    {
        var e = entity.eventSyncBoxCard;

        e.Card.ReplaceInBox(e.BoxIndex);
    }
コード例 #16
0
 protected override bool Filter(GameEventEntity entity)
 {
     return(entity.hasEventSyncBoxCard);
 }
コード例 #17
0
	public void PauseButtonAction() {
		IGroup<GameEventEntity> _groupGameEvent = Contexts.sharedInstance.gameEvent.GetGroup(Matcher<GameEventEntity>.AllOf(GameEventMatcher.StateEvent));
		GameEventEntity[] entitiesGameEvent = _groupGameEvent.GetEntities();
		GameEventEntity entityGameEvent = entitiesGameEvent[0];
		entityGameEvent.ReplaceStateEvent("Pause");
	}