public static Song SongJsonToSong(SongJson songJson) { //Notes List <Note> notes = new List <Note>(); if (songJson.Notes != null) { foreach (NoteJson noteJson in songJson.Notes) { Note.Direction direction = GetDirection(noteJson.Key); notes.Add(new Note(direction, noteJson.Beat, noteJson.Duration)); } } //Effects List <Effect> effects = new List <Effect>(); if (songJson.Effects != null) { foreach (EffectJson effectJson in songJson.Effects) { Effect.EffectType type = GetEffect(effectJson.Effect); effects.Add(new Effect(type, effectJson.Beat, effectJson.Scale)); } } //Audio AudioClip clip = AssetLoader.GetClipFromFile(songJson.Backtrack); return(new Song(notes, effects, clip, songJson.BPM, songJson.NoteSpeed)); }
public static bool CanUseEffect(Effect.EffectType effectType) { bool canUseInPhase = CanUseEffectInThisPhase(effectType); if (!canUseInPhase) { return false; } if (effectType == Effect.EffectType.AegisOfZeus_IgnoreDeadliness_single) { if (Game.instance.Casualties == 0) { return false; } } if (effectType == Effect.EffectType.HelmOfHades_MoveMonsterToDiscardPile_single) { List<OneCardManager> enclist = Visual.instance.GetCurrentEncounter(); foreach (var VARIABLE in enclist) { if (VARIABLE.cardAsset.type == CardType.monster) { return true; } } return false; } if (effectType == Effect.EffectType.OrpheusLyre_StopLevelUpMonsterInVictoryPile_single) { if (Game.instance.winningPile.Count > 0) { return true; } return false; } if (effectType == Effect.EffectType.ApolloBow_RollDice6_single) { List<OneCardManager> encList = Visual.instance.GetCurrentEncounter(); foreach (var VARIABLE in encList) { if (VARIABLE.cardAsset.resolved == ResolvedType.notresolved) { if (VARIABLE.cardAsset.type == CardType.monster || VARIABLE.cardAsset.type == CardType.treasure) { return true; } } } return false; } return true; }
private static void raiseNewEffect(Effect.EffectType effectType) { if (Effect.arrayOfViewableEffects.Contains(effectType)) { Effect effect = new Effect(effectType); EffectActor actor = EffectActor.CreateNewEffectActor(effect).GetComponent <EffectActor>(); actor.ShowHalo(); } EffectEvents.DoEffect(effectType); }
private static bool HaveEffectByType(Effect.EffectType effectType) { foreach (Effect effect in Game.instance.CardEffects) { if (effect.Type == effectType) { return true; } } return false; }
public void SelectEffect(Effect.EffectType effectType, int effectPower) { switch (effectType) { case Effect.EffectType.ChangeLife: m_playerUIController.ChangeLife(effectPower); break; case Effect.EffectType.ChangeInfection: m_playerUIController.ChangeInfection(effectPower); break; } }
public Skill(Skill skill) { id = skill.id; name = skill.name; description = skill.description; currCooldown = 0; cooldown = skill.cooldown; iconName = skill.iconName; boundaryRange = skill.boundaryRange; duration = skill.duration; targetLimit = skill.targetLimit; effectType = skill.effectType; successChance = skill.successChance; }
public Skill(int Id, string Name, string Description, int Cooldown, string IconName, int BoundaryRange, int Duration, TargetType TargetLimit, Effect.EffectType EffectType, float SuccessChance = 1.0f) { id = Id; name = Name; description = Description; currCooldown = 0; cooldown = Cooldown; iconName = IconName; boundaryRange = BoundaryRange; duration = Duration; targetLimit = TargetLimit; effectType = EffectType; successChance = SuccessChance; }
private static void removeSingleEffects() { EffectActor[] listOfEffectActors = Visual.instance.EffectGroup.GetComponentsInChildren <EffectActor>(); foreach (EffectActor effectActor in listOfEffectActors) { Effect.EffectType t = effectActor.effect.Type; if (Effect.contEffects.Contains(t)) { continue; } GameManager.instance.StartCoroutine(RemoveSingleEffectCoroutine(effectActor)); } }
public void RemoveEffect(GameObject source, Effect.EffectType effectType) { switch (effectType) { case Effect.EffectType.VelocityChange: for (int i = 0; i < velocityChange.Count; i++) { if (velocityChange[i].source == source) { velocityChange.RemoveAt(i); i--; } } break; } }
public static void DoEffect(Effect.EffectType effectType) { if (effectType == Effect.EffectType.PansFlute_DiscardTop2Cards_single) { GameManager.instance.StartCoroutine(PansFluteEffectCoroutine()); } if (effectType == Effect.EffectType.WingedSandals_ReturnAdventureCard_single) { new CommmandDiscardCurrentEncounter().AddToQueue(); new GoToNextGamePhase(GamePhase.StartNewTurn).AddToQueue(); } if (effectType == Effect.EffectType.Cornucopia_Recover2Crew_single) { GameLogicEvents.eventRestoreCrew.Invoke(effectType); } }
public static void RestoreCrew(Effect.EffectType effectType) { int treasureCrewValue = 0; if (effectType == Effect.EffectType.Ambrosia_Recover3Crew_single) { treasureCrewValue = 3; } if (effectType == Effect.EffectType.Cornucopia_Recover2Crew_single) { treasureCrewValue = 2; } int newCrewValue = Game.instance.CrewNumber + treasureCrewValue; newCrewValue = Math.Min(newCrewValue, GameLogic.GetCrewStartingCount()); Game.instance.CrewNumber = newCrewValue; }
public virtual void AddEffect(Effect effect) { Effect.EffectType checkingType = effect.effectType; if (effect.isStackable) { if (effect.maxStacksCount > effects.Count(x => x.effectType == checkingType)) { goto Adding; //перепрыгиваем к добавлению } else { return; } } Effect similarTypeEffect = effects.Find(x => x.effectType == checkingType); if (similarTypeEffect) { if (similarTypeEffect.strength > effect.strength) { return; } else if (!effect.isRepeatable) { effects.Remove(similarTypeEffect); } else { similarTypeEffect.Duration = effect.Duration; return; } } Adding: //добавление эффекта в список и упорядочивание по приоритету effects.Add(effect.Clone()); effects.OrderBy(ef => ef.priority); }
private static void RestoreCrewByCard(Effect.EffectType type) { GameLogicModifyGame.RestoreCrew(type); EffectEvents.ShowRestoreCrew(); Visual.instance.UpdateCrewCounter(); }
//actorを指定すると素早さ補正を反映したアクションを返す public static Action getActionByName(string actionName = "", BattleCharacter actor = null) { // new Effect文が長くなるのでここで転記しておく(ダサいけど多分読みやすくなるから許して) Effect.TargetType TARGET_SINGLE = Effect.TargetType.TARGET_SINGLE; Effect.TargetType TARGET_SINGLE_RANDOM = Effect.TargetType.TARGET_SINGLE_RANDOM; Effect.TargetType TARGET_ALL = Effect.TargetType.TARGET_ALL; Effect.TargetType ME = Effect.TargetType.ME; //Effect.TargetType ALLY_SINGLE_RANDOM = Effect.TargetType.ALLY_SINGLE_RANDOM; Effect.TargetType ALLY_ALL = Effect.TargetType.ALLY_ALL; Effect.EffectType DAMAGE = Effect.EffectType.DAMAGE; Effect.EffectType HEAL = Effect.EffectType.HEAL; //Effect.EffectType BUFF = Effect.EffectType.BUFF; string description; //上に出る説明 int waitTime; //WT(発動にかかる時間) int power = 1; //基礎威力 int cost; //消費MP Action.Rarity rarity; //レアリティ(コモン→レア→エピック→レジェンダリー) List <Effect> effects = new List <Effect>(); List <Effect.Attribute> attributes = new List <Effect.Attribute>(); switch (actionName) { case "": Debug.LogWarning("getActionByNameの空文字コンストラクタが呼ばれてる"); return(new Action()); case "攻撃": description = "通常の攻撃を行う。"; waitTime = 12; power = 35; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "刺突": description = "すばやく敵を一突き。威力は大きくないが、隙が少ない。"; waitTime = 10; power = 23; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "重撃": description = "大振りの一撃を加える。防御していない敵に対して非常に有効。"; waitTime = 18; power = 131; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "双撃": description = "すばやく2連撃を行う。防御を崩したり詠唱妨害が得意。"; waitTime = 13; power = 31; cost = 0; rarity = Action.Rarity.RARE; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE, 40)); effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE, 40)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "盾打": description = "障壁を1枚展開しつつ攻撃する。"; waitTime = 13; power = 56; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); effects.Add(new Effect(actionName, ME, power, Buff.BuffID.GUARD)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "王衝": description = "3ターン目以降に威力が3倍となる一撃。そろそろ本気出す!"; waitTime = 12; power = 30; cost = 0; rarity = Action.Rarity.EPIC; attributes.Add(Effect.Attribute.PETIT_KING); effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE, 60, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "真王": description = "5ターン目以降に威力が7倍となる一撃。すべてを終わらせる時が来たようだな"; waitTime = 20; power = 52; cost = 0; rarity = Action.Rarity.LEGENDARY; attributes.Add(Effect.Attribute.KING); effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE, 60, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "王舞": description = "5ターン目以降威力7倍の7連撃。防壁を蹴散らす王者の突進。"; waitTime = 30; power = 11; cost = 0; rarity = Action.Rarity.LEGENDARY; attributes.Add(Effect.Attribute.KING); effects.Add(new Effect(actionName, TARGET_SINGLE, (int)(power * 0.5), DAMAGE, 30, attributes)); effects.Add(new Effect(actionName, TARGET_SINGLE, (int)(power * 0.6), DAMAGE, 30, attributes)); effects.Add(new Effect(actionName, TARGET_SINGLE, (int)(power * 0.7), DAMAGE, 30, attributes)); effects.Add(new Effect(actionName, TARGET_SINGLE, (int)(power * 0.8), DAMAGE, 30, attributes)); effects.Add(new Effect(actionName, TARGET_SINGLE, (int)(power * 0.9), DAMAGE, 30, attributes)); effects.Add(new Effect(actionName, TARGET_SINGLE, (int)(power * 1.1), DAMAGE, 30, attributes)); effects.Add(new Effect(actionName, TARGET_SINGLE, (int)(power * 1.7), DAMAGE, 30, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "四爪": description = "ランダムな敵に合計4回攻撃を行う。一回ごとの威力は低い。"; waitTime = 13; power = 14; cost = 0; rarity = Action.Rarity.RARE; effects.Add(new Effect(actionName, TARGET_SINGLE_RANDOM, power, DAMAGE, 30)); effects.Add(new Effect(actionName, TARGET_SINGLE_RANDOM, power, DAMAGE, 30)); effects.Add(new Effect(actionName, TARGET_SINGLE_RANDOM, power, DAMAGE, 30)); effects.Add(new Effect(actionName, TARGET_SINGLE_RANDOM, power, DAMAGE, 30)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "大鎌": description = "大振りの攻撃で敵全体にダメージ。隙が大きいが威力も高い。"; waitTime = 14; power = 61; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_ALL, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "火炎": description = "魔力の炎で敵単体に大ダメージ。魔法ダメージは防御を貫通する。"; waitTime = 14; power = 82; cost = 15; rarity = Action.Rarity.COMMON; attributes.Add(Effect.Attribute.MAGIC); attributes.Add(Effect.Attribute.FIRE); effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE, 60, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "治癒": description = "癒しの魔力を開放し、自身のHPを即座に(40+魔力Lv*16)程度回復する。"; waitTime = 14; power = 40; cost = 10; rarity = Action.Rarity.COMMON; attributes.Add(Effect.Attribute.MAGIC); effects.Add(new Effect(actionName, ME, power, HEAL, 60, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "癒陣": description = "HPを50回復し、3ターンの間回復を続ける陣を生成。"; waitTime = 14; power = 50; cost = 25; rarity = Action.Rarity.COMMON; attributes.Add(Effect.Attribute.MAGIC); effects.Add(new Effect(actionName, ME, power, Effect.EffectType.CONSTANTHEAL)); effects.Add(new Effect(actionName, ME, power, Buff.BuffID.REGENERATE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "防御": description = "物理障壁を周囲に展開し、次に受ける物理ダメージを50%以上軽減する。"; waitTime = 9; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, ME, power, Buff.BuffID.GUARD)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "双盾": description = "物理障壁を一度に2枚展開する。防壁の維持できる枚数は防御Lvで決まる。"; waitTime = 11; cost = 10; rarity = Action.Rarity.RARE; effects.Add(new Effect(actionName, ME, power, Buff.BuffID.GUARD)); effects.Add(new Effect(actionName, ME, power, Buff.BuffID.GUARD)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "毒霧": description = "敵全体にわずかな魔法ダメージを与え、毒状態にする。"; waitTime = 12; power = 24; cost = 20; rarity = Action.Rarity.COMMON; attributes.Add(Effect.Attribute.MAGIC); effects.Add(new Effect(actionName, TARGET_ALL, power, DAMAGE)); effects.Add(new Effect(actionName, TARGET_ALL, power, Buff.BuffID.POISON)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "吸収": description = "敵一体の生命力に直接干渉し、一部を奪い取る。奪い取った分の半分を回復する。"; waitTime = 20; power = 70; cost = 20; rarity = Action.Rarity.COMMON; attributes.Add(Effect.Attribute.MAGIC); effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE, 60, attributes)); effects.Add(new Effect(actionName, ME, power / 2, HEAL)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "雷光": description = "合計4回、ランダムな敵に強力な魔法ダメージを与える。"; waitTime = 27; power = 85; cost = 50; rarity = Action.Rarity.EPIC; attributes.Add(Effect.Attribute.THUNDER); attributes.Add(Effect.Attribute.MAGIC); effects.Add(new Effect(actionName, TARGET_SINGLE_RANDOM, power, DAMAGE, 50, attributes)); effects.Add(new Effect(actionName, TARGET_SINGLE_RANDOM, power, DAMAGE, 50, attributes)); effects.Add(new Effect(actionName, TARGET_SINGLE_RANDOM, power, DAMAGE, 50, attributes)); effects.Add(new Effect(actionName, TARGET_SINGLE_RANDOM, power, DAMAGE, 50, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "力溜": description = "しばらく筋力Lv+3。"; waitTime = 13; cost = 20; rarity = Action.Rarity.EPIC; effects.Add(new Effect(actionName, ME, power, Buff.BuffID.STRUP)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "集中": description = "しばらく魔力Lv+3。"; waitTime = 13; cost = 20; rarity = Action.Rarity.EPIC; effects.Add(new Effect(actionName, ME, power, Buff.BuffID.INTUP)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "響火": description = "槍に火の魔力をまとわせ、物理攻撃のあとに火属性ダメージを追加。"; waitTime = 13; cost = 40; rarity = Action.Rarity.EPIC; effects.Add(new Effect(actionName, ME, power, Buff.BuffID.ENCHANT_FIRE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "加速": description = "しばらく速度Lv+3。"; waitTime = 13; cost = 40; rarity = Action.Rarity.EPIC; effects.Add(new Effect(actionName, ME, power, Buff.BuffID.SPDUP)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "幻閃": description = "ターン開始時に今ターゲットしている敵に対して攻撃。"; waitTime = 17; cost = 20; rarity = Action.Rarity.RARE; effects.Add(new Effect(actionName, ME, power, Buff.BuffID.ADDITIONAL_ATTACK)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "追幻": description = "ターン終了時にランダムな敵に対して強力な攻撃。"; waitTime = 18; cost = 20; rarity = Action.Rarity.RARE; effects.Add(new Effect(actionName, ME, power, Buff.BuffID.ADDITIONAL_ENDATTACK)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "幻閃起動": description = "幻閃による追撃。"; waitTime = 0; power = 61; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "追幻起動": description = "追幻による追撃。"; waitTime = 0; power = 129; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE_RANDOM, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "衝撃": description = "魔力の塊をそのままぶつけて爆発させる。仕組みが単純なので高速に唱えられるが燃費が悪い。"; waitTime = 6; power = 31; cost = 15; rarity = Action.Rarity.COMMON; attributes.Add(Effect.Attribute.MAGIC); effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE, 60, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "破防": description = "気合(魔力)を入れて敵の防壁を全部破壊しつつ物理攻撃。"; waitTime = 14; power = 77; cost = 10; rarity = Action.Rarity.RARE; attributes.Add(Effect.Attribute.REMOVE_SHIELD); effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE, 60, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "魔槍": description = "魔力で体の動きをブーストして一撃を叩き込む。"; waitTime = 11; power = 115; cost = 15; rarity = Action.Rarity.RARE; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "残像": description = "ターン開始時に防壁を1枚追加。"; waitTime = 10; cost = 20; rarity = Action.Rarity.RARE; effects.Add(new Effect(actionName, ME, power, Buff.BuffID.AUTO_SHIELD)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "鏡射": description = "ターン終了時に現在ターゲットしている敵に魔法ダメージ。"; waitTime = 10; cost = 10; rarity = Action.Rarity.EPIC; effects.Add(new Effect(actionName, ME, power, Buff.BuffID.ADDITIONAL_MAGIC)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "鏡射起動": description = "鏡射による追撃。"; waitTime = 0; power = 69; cost = 0; rarity = Action.Rarity.COMMON; attributes.Add(Effect.Attribute.MAGIC); effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE, 60, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "凍結": description = "敵全体に強力な魔法ダメージを与える。"; waitTime = 16; power = 65; cost = 35; rarity = Action.Rarity.RARE; attributes.Add(Effect.Attribute.MAGIC); effects.Add(new Effect(actionName, TARGET_ALL, power, DAMAGE, 90, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "烈風": description = "敵単体に強力な魔法ダメージを与える。"; waitTime = 12; power = 101; cost = 10; rarity = Action.Rarity.RARE; attributes.Add(Effect.Attribute.MAGIC); effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE, 60, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "瞬突": description = "すばやく正確な一撃を加える。"; waitTime = 9; power = 51; cost = 0; rarity = Action.Rarity.RARE; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE, 60, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "獄炎": description = "敵全体に最高位の魔法ダメージを与える。"; waitTime = 26; power = 215; cost = 99; rarity = Action.Rarity.LEGENDARY; attributes.Add(Effect.Attribute.MAGIC); effects.Add(new Effect(actionName, TARGET_ALL, power, DAMAGE, 60, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "霊祈": description = "ターン終了時にMPを回復。残りMPが少ないほど効果的。"; waitTime = 10; cost = 20; rarity = Action.Rarity.RARE; effects.Add(new Effect(actionName, ME, power, Buff.BuffID.REGENERATE_MP)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "集霊": description = "MPを40回復する。"; waitTime = 20; power = 40; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, ME, power, Effect.EffectType.CONSTANTMPHEAL)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "高揚": description = "50Fの間、与えるダメージが2倍になる。"; waitTime = 15; cost = 25; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, ME, power, Buff.BuffID.EXALTED)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); //****************** //敵限定アクション //****************** case "ひっかき": description = "ねこのスタンダード攻撃。"; waitTime = 99; power = 14; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "もくもく": description = "もくもくと曖昧なダメージ。"; waitTime = 99; power = 25; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "打撃": description = "攻撃。"; waitTime = 99; power = 21; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "爪": description = "両手でひっかいてくる。"; waitTime = 99; power = 6; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "ねこパンチ": description = "ねこの本気パンチ。いたい!"; waitTime = 99; power = 38; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "するどい爪": description = "両手でひっかいてくる。二回ダメージ。"; waitTime = 99; power = 17; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "強パンチ": description = "ねこの会心の一撃。少し痛い。"; waitTime = 99; power = 42; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "てしてし": description = "じゃれてくる。全然痛くない"; waitTime = 99; power = 2; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "噛みつく": description = "強力な顎で噛み付いてくる。"; waitTime = 99; power = 63; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "毒牙": description = "毒を持った牙による噛みつき。毒状態になる。"; waitTime = 99; power = 34; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); effects.Add(new Effect(actionName, TARGET_SINGLE, 99, Buff.BuffID.POISON)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "強化": description = "一時的に身体を強化する。筋力魔力収魔速度防御を1Lv上昇。"; waitTime = 10; power = 34; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, ME, 99, Buff.BuffID.POWERUP)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "魔王剣": description = "魔王だから剣も使えます。"; waitTime = 99; power = 74; cost = 0; rarity = Action.Rarity.COMMON; effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "静電気": description = "ピリッとしてくる。"; waitTime = 8; power = 17; cost = 10; rarity = Action.Rarity.COMMON; attributes.Add(Effect.Attribute.MAGIC); attributes.Add(Effect.Attribute.THUNDER); effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE, 60, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "プチ火炎": description = "小規模な火炎攻撃。詠唱中に攻撃を当てることで妨害できる。"; waitTime = 13; power = 51; cost = 10; rarity = Action.Rarity.COMMON; attributes.Add(Effect.Attribute.MAGIC); attributes.Add(Effect.Attribute.FIRE); effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE, 60, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "大凍結": description = "本気で凍らせてくる。"; waitTime = 27; power = 96; cost = 10; rarity = Action.Rarity.COMMON; attributes.Add(Effect.Attribute.MAGIC); effects.Add(new Effect(actionName, TARGET_SINGLE, power, DAMAGE, 60, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "障壁展開": description = "周囲の味方に障壁を配る。"; waitTime = 10; power = 999; cost = 10; rarity = Action.Rarity.COMMON; attributes.Add(Effect.Attribute.MAGIC); effects.Add(new Effect(actionName, ALLY_ALL, 99, Buff.BuffID.GUARD, 60, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); case "二重障壁": description = "2枚の障壁を展開。"; waitTime = 10; power = 999; cost = 10; rarity = Action.Rarity.COMMON; attributes.Add(Effect.Attribute.MAGIC); effects.Add(new Effect(actionName, ME, 99, Buff.BuffID.GUARD, 60, attributes)); effects.Add(new Effect(actionName, ME, 99, Buff.BuffID.GUARD, 60, attributes)); return(new Action(actionName, description, waitTime, cost, effects, rarity, actor)); default: Debug.LogWarning("getActionByNameのdefault:が呼ばれてる"); return(new Action()); } }
public static bool CanUseEffectInThisPhase(Effect.EffectType effectType) { GamePhase[] phases = StateManager.dictEnabledPhases[effectType]; return phases.Contains(Game.instance.CurrentState); }