public override void Enter(CardAbilityData abilityData) { iFrame = 0; base.Enter(abilityData); suteCard = null; // [1216] ゴリ 効果がモンスターかイベントか知りたい // Ability列車 仲間と共に発動した瞬間 ActionEffectUVInfo UVInfo = new ActionEffectUVInfo(); UVInfo.iEffectType = (int)UV_EFFECT_TYPE.SKILL_WIN; UVInfo.fPosX = abilityData.GetFieldEventPosition().x; UVInfo.fPosY = abilityData.GetFieldEventPosition().y; UVInfo.fPosZ = abilityData.GetFieldEventPosition().z; MessageManager.DispatchOffline(CardAbilityData.playerManager.GetPlayerID(abilityData.isMyPlayer), MessageType.ActionEffectUV, UVInfo); // 効果発動SE oulAudio.PlaySE("action_ability"); // (TODO)手札からドローする番号を決定(無造作) if (abilityData.isMyPlayer || !SelectData.isNetworkBattle) { var deckManager = abilityData.myPlayer.deckManager; var numHand = deckManager.GetNumHand(); var selectHandIndex = (int)IDType.NONE; for (int i = 0; i < numHand; i++) { var card = deckManager.GetHandCard(i); if (card.isEventCard()) { continue; } // 条件満たしたら if (CheckRange((PowerRange)abilityData.c_value1, card.power, abilityData.c_value0)) { selectHandIndex = i; break; } } if (selectHandIndex == (int)IDType.NONE) { Debug.LogWarning("炎の剣の捨て札で意図しない値"); // 終了 abilityData.isJoukenOK = true; endFlag = true; } SelectCardIndexInfo info = new SelectCardIndexInfo(); info.index = selectHandIndex; // メッセージ送信 MessageManager.Dispatch(abilityData.myPlayer.playerID, MessageType.SelectHand, info); return; } }
public override void Enter(CardAbilityData abilityData) { iWaitFrame = 0; base.Enter(abilityData); // 現在のターンを取得 int turn = GameObject.Find("GameMain").GetComponent <SceneMain>().turn; int joukenTurn = abilityData.c_value0; PowerRange range = (PowerRange)abilityData.c_value1; Debug.Log("ターン条件チェックするクマ"); // 条件チェック bool isOK = CheckRange(range, turn, joukenTurn); if (isOK) { Debug.Log("条件満たしてる"); // 成功時の効果に移行 abilityData.skillNumber = abilityData.c_value2; // Ability列車 ターン条件効果発動(条件成功時) ActionEffectUVInfo info = new ActionEffectUVInfo(); info.iEffectType = (int)UV_EFFECT_TYPE.SKILL_WIN; info.fPosX = abilityData.GetFieldStrikerPosition().x; info.fPosY = abilityData.GetFieldStrikerPosition().y; info.fPosZ = abilityData.GetFieldStrikerPosition().z; MessageManager.DispatchOffline(CardAbilityData.playerManager.GetPlayerID(abilityData.isMyPlayer), MessageType.ActionEffectUV, info); // 効果発動SE oulAudio.PlaySE("action_ability"); } else { Debug.Log("条件満たしていない"); // 失敗時の効果に移行 abilityData.skillNumber = abilityData.c_value3; // Ability列車 ターン条件効果発動(条件満たしてない時) } }
public override void Enter(CardAbilityData abilityData) { iWaitFrame = 0; base.Enter(abilityData); timer = 0; step = 0; drawCard = null; // 墓地からドローする番号を決定(無造作) if (abilityData.isMyPlayer || !SelectData.isNetworkBattle) { SelectCardIndexInfo info = new SelectCardIndexInfo(); info.index = abilityData.myPlayer.deckManager.GetCemeteryRandomNumberStriker(); if (info.index == (int)IDType.NONE) { Debug.LogWarning("墓地にストライカーがいないのに引こうとしている。事前にその効果を発動しないようにしましょう。"); // 終了 endFlag = true; return; } // メッセージ送信 MessageManager.Dispatch(abilityData.myPlayer.playerID, MessageType.SelectCemetery, info); } // Ability列車 仲間と共に発動した瞬間 ActionEffectUVInfo UVInfo = new ActionEffectUVInfo(); UVInfo.iEffectType = (int)UV_EFFECT_TYPE.SKILL_WIN; UVInfo.fPosX = abilityData.GetFieldEventPosition().x; UVInfo.fPosY = abilityData.GetFieldEventPosition().y; UVInfo.fPosZ = abilityData.GetFieldEventPosition().z; MessageManager.DispatchOffline(CardAbilityData.playerManager.GetPlayerID(abilityData.isMyPlayer), MessageType.ActionEffectUV, UVInfo); // 効果発動SE oulAudio.PlaySE("action_ability"); int a = 0; a++; }
void JoukenOK(CardAbilityData abilityData) { // 成功時の効果に移行 abilityData.skillNumber = abilityData.c_value2; // Ability列車 パワー条件成功時 // [1216] ゴリ 効果がモンスターかイベントか知りたい // Ability列車 仲間と共に発動した瞬間 ActionEffectUVInfo UVInfo = new ActionEffectUVInfo(); UVInfo.iEffectType = (int)UV_EFFECT_TYPE.SKILL_WIN; UVInfo.fPosX = abilityData.GetFieldStrikerPosition().x; UVInfo.fPosY = abilityData.GetFieldStrikerPosition().y; UVInfo.fPosZ = abilityData.GetFieldStrikerPosition().z; MessageManager.DispatchOffline(CardAbilityData.playerManager.GetPlayerID(abilityData.isMyPlayer), MessageType.ActionEffectUV, UVInfo); // 効果発動SE oulAudio.PlaySE("action_ability"); }
public override void Enter(CardAbilityData abilityData) { iWaitFrame = 0; base.Enter(abilityData); // ゴリゴリのゴリ[12/16] 発動元のカードタイプが知りたかったとさ Card FieldCard = abilityData.myPlayer.cardObjectManager.fieldStrikerCard; Card EventCard = abilityData.myPlayer.cardObjectManager.fieldEventCard; if (FieldCard != null && EventCard == null) { // Ability列車 勝利の雄たけびの成功時 ActionEffectUVInfo info = new ActionEffectUVInfo(); info.iEffectType = (int)UV_EFFECT_TYPE.SKILL_WIN; info.fPosX = abilityData.GetFieldStrikerPosition().x; info.fPosY = abilityData.GetFieldStrikerPosition().y; info.fPosZ = abilityData.GetFieldStrikerPosition().z; MessageManager.DispatchOffline(CardAbilityData.playerManager.GetPlayerID(abilityData.isMyPlayer), MessageType.ActionEffectUV, info); } if (EventCard != null) { // Ability列車 勝利の雄たけびの成功時 ActionEffectUVInfo info = new ActionEffectUVInfo(); info.iEffectType = (int)UV_EFFECT_TYPE.SKILL_WIN; info.fPosX = abilityData.GetFieldEventPosition().x; info.fPosY = abilityData.GetFieldEventPosition().y; info.fPosZ = abilityData.GetFieldEventPosition().z; MessageManager.DispatchOffline(CardAbilityData.playerManager.GetPlayerID(abilityData.isMyPlayer), MessageType.ActionEffectUV, info); } // 効果発動SE oulAudio.PlaySE("action_ability"); }
public override void Enter(CardAbilityData abilityData) { iWaitFrame = 0; base.Enter(abilityData); var range = (DifferenceRangeType)abilityData.c_value0; // 条件タイプ var difference = abilityData.c_value1; // 条件の差 var myPower = abilityData.myPlayer.jissainoPower; var youPower = abilityData.youPlayer.jissainoPower; bool ok = (myPower < youPower); // 負けてたらtrue if (!ok) { abilityData.isJoukenOK = false; return; } switch (range) { case DifferenceRangeType.NoneLimit: abilityData.isJoukenOK = true; break; case DifferenceRangeType.In: abilityData.isJoukenOK = (youPower - myPower <= difference); break; case DifferenceRangeType.Out: abilityData.isJoukenOK = (youPower - myPower >= difference); break; default: Debug.LogError("爪痕のswitch文でエラークマ"); abilityData.isJoukenOK = false; break; } // 条件満たしていないなら終了 if (!abilityData.isJoukenOK) { endFlag = true; return; } // Ability列車 爪痕の成功時 ActionEffectUVInfo info = new ActionEffectUVInfo(); info.iEffectType = (int)UV_EFFECT_TYPE.SKILL_LOSE; info.fPosX = abilityData.GetFieldStrikerPosition().x; info.fPosY = abilityData.GetFieldStrikerPosition().y; info.fPosZ = abilityData.GetFieldStrikerPosition().z; MessageManager.DispatchOffline(CardAbilityData.playerManager.GetPlayerID(abilityData.isMyPlayer), MessageType.ActionEffectUV, info); // 効果発動SE oulAudio.PlaySE("action_ability"); int a = 0; a++; }
public override void Enter(CardAbilityData abilityData) { iWaitFrame = 0; // 初期化 base.Enter(abilityData); var range = (DifferenceRangeType)abilityData.c_value0; // 条件タイプ var difference = abilityData.c_value1; // 条件の差 var myPower = abilityData.myPlayer.jissainoPower; var youPower = abilityData.youPlayer.jissainoPower; // ジョーカーvs10チェック(負けてるのに勝った扱いになるから) var myCard = abilityData.myPlayer.GetFieldStrikerCard(); // 自分自身のパワーが10なら if (myCard.cardData.power == 10) { // 相手がジョーカーだったら効果は発動しない var youCard = abilityData.youPlayer.GetFieldStrikerCard(); if (youCard) { if (youCard.cardData.cardType == CardType.Joker) { abilityData.isJoukenOK = false; return; } } } bool ok = (myPower > youPower || youPower == Player.noSetStrikerPower); // 勝ってたらtrue if (!ok) { abilityData.isJoukenOK = false; return; } switch (range) { case DifferenceRangeType.NoneLimit: abilityData.isJoukenOK = true; break; case DifferenceRangeType.In: abilityData.isJoukenOK = (myPower - youPower <= difference); break; case DifferenceRangeType.Out: abilityData.isJoukenOK = (myPower - youPower >= difference); break; default: Debug.LogError("勝利の雄たけびのswitch文でエラークマ"); abilityData.isJoukenOK = false; break; } // 条件満たしていないなら終了 if (!abilityData.isJoukenOK) { endFlag = true; return; } // Ability列車 勝利の雄たけびの成功時 ActionEffectUVInfo info = new ActionEffectUVInfo(); info.iEffectType = (int)UV_EFFECT_TYPE.SKILL_WIN; info.fPosX = abilityData.GetFieldStrikerPosition().x; info.fPosY = abilityData.GetFieldStrikerPosition().y; info.fPosZ = abilityData.GetFieldStrikerPosition().z; MessageManager.DispatchOffline(CardAbilityData.playerManager.GetPlayerID(abilityData.isMyPlayer), MessageType.ActionEffectUV, info); // 効果発動SE oulAudio.PlaySE("action_ability"); int a = 0; a++; }