// Use this for initialization void Start() { if (instance == null) { instance = this; } Button btn = this.GetComponent <Button> (); btn.onClick.AddListener(OnClick); }
public void ReplaceSkill(int index, UseSkill skill) { if (index >= 0 && index < useSkills.Count) { if (useSkills[index] != null) { useSkills[index].Release(); } useSkills[index] = skill; } }
public static bool OnFinishWork_BloodBath(ref UseSkill skill) { CreatureFeelingState currentFeelingState = skill.GetCurrentFeelingState(); if (currentFeelingState == CreatureFeelingState.BAD) { skill.agent.Die(); return(false); } return(true); }
public static bool OnEnterRoom_ShyThing(ShyThing __instance, ref UseSkill skill) { int faceType = __instance.animScript.GetFaceType() + 1; if (skill.agent.level <= faceType) { skill.agent.Die(); return(false); } return(true); }
public static bool OnEnterRoom_BloodBath(ref UseSkill skill) { int fortitudeLevel = skill.agent.fortitudeLevel; int temperanceLevel = skill.agent.temperanceLevel; if (fortitudeLevel > temperanceLevel) { skill.agent.Die(); return(false); } return(true); }
public static bool OnReleaseWork_Mhz_1_76(Mhz_1_76 __instance, ref UseSkill skill) { CreatureFeelingState currentFeelingState = skill.GetCurrentFeelingState(); if (currentFeelingState == CreatureFeelingState.NORM) { if (__instance.Prob(50)) { var rand = new Random(); List <CreatureModel> list = new List <CreatureModel>(); foreach (CreatureModel creatureModel in CreatureManager.instance.GetCreatureList()) { if (creatureModel.qliphothCounter > 0 && creatureModel.script.GetQliphothCounterMax() > 0) { list.Add(creatureModel); } } if (list.Count > 0) { list[rand.Next(0, list.Count)].SetQliphothCounter(0); } } } else if (currentFeelingState == CreatureFeelingState.BAD) { var rand = new Random(); List <CreatureModel> list = new List <CreatureModel>(); foreach (CreatureModel creatureModel in CreatureManager.instance.GetCreatureList()) { if (creatureModel.qliphothCounter > 0 && creatureModel.script.GetQliphothCounterMax() > 0) { list.Add(creatureModel); } } if (list.Count > 0) { var Exnum = rand.Next(2, 6); for (int i = 0; i < Exnum; i++) { var Num = rand.Next(0, list.Count); list[Num].SetQliphothCounter(0); list.RemoveAt(Num); if (list.Count == 0) { break; } } } } return(true); }
public static bool OnFinishWork_OneBadManyGood(ref UseSkill skill) { if (skill.skillTypeInfo.rwbpType == RwbpType.W) { if (skill.agent.temperanceLevel == 1 || skill.agent.prudenceLevel <= 2) { skill.agent.mental = 0; skill.agent.Panic(); return(false); } } return(true); }
public static bool OnReleaseWork_Baku(Baku __instance, ref UseSkill skill) { CreatureFeelingState currentFeelingState = skill.GetCurrentFeelingState(); if (currentFeelingState == CreatureFeelingState.NORM) { if (__instance.Prob(50)) { __instance.model.SubQliphothCounter(); } } return(true); }
//Transition to target selection for skill static public void UseSkillState(ISkill skill) { UseSkill useSkill = new UseSkill(curCharacter, skill); if (skill.targetsAllies) { UI.TargetP.Init(playerChars, useSkill); } else { UI.TargetP.Init(monsters, useSkill); } ChangeState(ActionState.TARGET); }
public Perk() { Name = "Perk"; Explanation = (h) => ""; Number = (h) => Double.NaN; baseGetter = (g) => g; baseSetter = (s) => s; //Stats GetMaxHp = baseGetter; SetMaxHp = baseSetter; GetHp = baseGetter; SetHp = baseSetter; GetArmor = baseGetter; SetArmor = baseSetter; GetResist = baseGetter; SetResist = baseSetter; GetRegen = baseGetter; SetRegen = baseSetter; GetAbilityPower = baseGetter; SetAbilityPower = baseSetter; GetAttackDamage = baseGetter; SetAttackDamage = baseSetter; GetAttackSpeed = baseGetter; SetAttackSpeed = baseSetter; GetAttackRange = baseGetter; SetAttackRange = baseSetter; GetMovementSpeed = baseGetter; SetMovementSpeed = baseSetter; GetEnergy = baseGetter; SetEnergy = baseSetter; GetEnergyRegen = baseGetter; SetEnergyRegen = baseSetter; GetMaxEnergy = baseGetter; SetMaxEnergy = baseSetter; GetMoney = baseGetter; SetMoney = baseSetter; GetCDReduction = baseGetter; SetCDReduction = baseSetter; //Fns GetDamage = (a) => a; GetHeal = (a) => a; StartTurn = (a) => a; EndTurn = (a) => a; Init = (a) => a; LevelUp = (a) => a; //Skills SkillFix = (s) => s; }
public static bool OnEnterRoom_OldLady(OldLady __instance, ref UseSkill skill) { if (skill.skillTypeInfo.rwbpType == RwbpType.P) { skill.agent.mental = 0; skill.agent.Panic(); return(false); } else if ((4 - __instance.model.qliphothCounter) >= skill.agent.temperanceLevel) { skill.agent.mental = 0; skill.agent.Panic(); return(false); } return(true); }
public static UseSkill getSkillWhenNoSkill() { UseSkill boming = (sender, args) => { BaseRoleAction source = (BaseRoleAction)sender; List <BaseRoleAction> baseRoles = ((UseSkillEventArgs)args).targets; var baseRole = baseRoles[0]; //TODO 让target受到伤害。反射判断target有没有受伤害都脚本 // baseRole.attacked();的动画 var hp = (int)Math.Round(source.GetMaxHp() * 0.1, 0); baseRole.SetHp(baseRole.GetHp() - hp); source.SetHp(source.GetHp() - hp); return(new ReturnDTO(RETURN_CODE.SUCCESS)); }; return(boming); }
public static bool OnReleaseWork_Ppodae(Ppodae __instance, ref UseSkill skill) { if (skill.skillTypeInfo.rwbpType != RwbpType.R) { skill.agent.Die(); } CreatureFeelingState currentFeelingState = skill.GetCurrentFeelingState(); if (currentFeelingState == CreatureFeelingState.NORM) { if (__instance.Prob(50)) { __instance.model.SubQliphothCounter(); } } return(true); }
public static bool OnFinishWork_SpiderMom(ref UseSkill skill) { CreatureFeelingState currentFeelingState = skill.GetCurrentFeelingState(); if (currentFeelingState == CreatureFeelingState.BAD) { skill.agent.Die(); return(true); } skill.agent.hp -= (60 - (skill.agent.temperanceLevel * 10)); if (skill.agent.hp <= 0) { skill.agent.Die(); return(true); } return(true); }
/// <summary> /// 直伤卡牌 /// </summary> /// <returns></returns> public BaseSkill getDamangeSkill(int number) { //还要消耗栏 UseSkill cardEffect1 = CommonSkillFactory.checkMpIsEnough(number); UseSkill cardEffect2 = (sender, args) => { List <BaseRoleAction> baseRoles = ((UseSkillEventArgs)args).targets; var baseRole = baseRoles[0]; //TODO 让target受到伤害。反射判断target有没有受伤害都脚本 // baseRole.attacked();的动画 baseRole.SetHp(baseRole.GetHp() - number); return(new ReturnDTO(RETURN_CODE.SUCCESS)); }; BaseSkill card = new BaseSkill(1, "炫酷火球", "", 1, 1, 1, false, number, null, "你不觉得火球作为demo很炫酷吗", new UseSkill[] { cardEffect1, cardEffect2 }); card.IsAvailable = true; return(card); }
public static UseSkill checkMpIsEnough(int mp) { //还要消耗栏 UseSkill cardEffect1 = (sender, args) => { BaseRoleAction baseRole = (BaseRoleAction)sender; if (baseRole.GetMp() >= mp) { baseRole.SetMp(baseRole.GetMp() - mp); return(new ReturnDTO(RETURN_CODE.SUCCESS)); } else { //打断 Console.WriteLine("法力值不足"); return(new ReturnDTO(RETURN_CODE.BATTLE_HAS_NO_MP)); } }; return(cardEffect1); }
public static bool OnReleaseWork_Cosmos(Cosmos __instance, ref UseSkill skill) { CreatureFeelingState currentFeelingState = skill.GetCurrentFeelingState(); if (currentFeelingState == CreatureFeelingState.NORM) { __instance.model.SubQliphothCounter(); } else if (currentFeelingState == CreatureFeelingState.BAD) { __instance.model.SubQliphothCounter(); __instance.model.SubQliphothCounter(); } if (skill.agent.fortitudeLevel >= 3) { __instance.model.SubQliphothCounter(); } return(true); }
public bool PutWarpPrefab() { if (putWarpPairNum < putAbleWarpPairNum) { if (!putWarp) { SEManager.PlayPutObjectSound1(); warp = (GameObject)Instantiate(warpPrefab, transform.position, Quaternion.identity); warp.GetComponent <Warp>().SetPutter(this.GetComponent <PutObject>()); try { UseSkill us = this.transform.parent.transform.gameObject.GetComponent <UseSkill>(); us.SetSkillCountTime(2.5f); } catch { } } else { SEManager.PlayPutObjectSound1(); GameObject exitwarp = (GameObject)Instantiate(exitWarpPrefab, transform.position, Quaternion.identity); warp.GetComponent <Warp>().SetPareWarp(exitwarp); exitwarp.GetComponent <Warp>().SetPareWarp(warp); exitwarp.GetComponent <Warp>().SetPutter(this.GetComponent <PutObject>()); putWarpPairNum++; StartCoroutine(DelayMethod(10f, () => { exitwarp.GetComponent <Warp>().DestroyWarp(); })); } putWarp = !putWarp; return(true); } return(false); }
public void Update() { // check for activating skills if (ActivatingSkill != null) { if (ActivatingSkillTimestamp + ActivatingSkillLeadTime <= Global.Now) { SkillCommandProcessor.UseSkillNow(this, ActivatingSkill); ActivatingSkill = null; } } // check for queued skills else if (SkillQueue.Count > 0) { ActivatingSkill = SkillQueue.Dequeue(); } if (Target != null) { CombatUpdate(); } else if (Client == null) { BehaviourUpdate(); } else { if (Global.Now - LastMoveUpdate > TimeSpan.FromSeconds(1) && (MobileState == EnumMobileState.Running || MobileState == EnumMobileState.Walking)) { SetMobileState(EnumMobileState.Standing); } } HealUpdate(); }
private void EnemyBattleAround() { UpdatePokemonDatas(); if (CanBattle && null != battleState) { DebugHelper.Log("敌方开始了行动"); EnemyCurPokemonData.ChooseSkillType = SkillType.NULL; if (NeedReplaceSKill.context.ContainsKey(EnemyCurPokemonData.ID)) { EnemyChooseSkillID = NeedReplaceSKill.context[EnemyCurPokemonData.ID]; } if (ResourceController.Instance.allSkillDic.ContainsKey(EnemyChooseSkillID)) { Skill EnemySkill = ResourceController.Instance.allSkillDic[EnemyChooseSkillID]; if (null != EnemySkill) { BattlePause = true; EnemyCurPokemonData.ChooseSkillType = EnemySkill.type; UseSkill.Attack(EnemySkill, EnemyCurPokemonData, PlayerCurPokemonData); } } } }
public static void ProcessUseSkill(ClientConnection client, UseSkill message) { var avatar = client.Avatar as MobileAvatar; if (avatar == null) { client.LogMessage("Requested a skill, but doesn't have an avatar."); return; } Schema.EnumSkillRow esr = Global.ModelSchema.EnumSkill.FindByEnumSkillID(message.SkillId); if (esr == null) { client.LogMessage("Requested an invalid skill " + message.SkillId); return; } // If already performing a skill invocation, just queue the request for later. if (avatar.ActivatingSkill != null) { avatar.SkillQueue.Enqueue(message); return; } if (esr.LeadTime <= 0) { // process it now UseSkillNow(avatar, message); } else { // process it later, after lead-time has elapsed avatar.ActivatingSkill = message; avatar.ActivatingSkillTimestamp = Global.Now; avatar.ActivatingSkillLeadTime = TimeSpan.FromSeconds(esr.LeadTime); } }
public static bool OnReleaseWork_Wellcheers(ref UseSkill skill) { int skillLevel = 0; if (skill.skillTypeInfo.rwbpType == RwbpType.R) // 용기 { skillLevel = skill.agent.fortitudeLevel; } else if (skill.skillTypeInfo.rwbpType == RwbpType.W) { skillLevel = skill.agent.prudenceLevel; } else if (skill.skillTypeInfo.rwbpType == RwbpType.B) { skillLevel = skill.agent.temperanceLevel; } else { skillLevel = skill.agent.justiceLevel; } bool Check1 = skillLevel >= skill.agent.fortitudeLevel; bool Check2 = skillLevel >= skill.agent.prudenceLevel; bool Check3 = skillLevel >= skill.agent.temperanceLevel; bool Check4 = skillLevel >= skill.agent.justiceLevel; if (Check1 && Check2 && Check3 && Check4) { return(true); } else { skill.agent.Die(); return(true); } }
//private static RoundDecision AG(Game game) //{ // var roundDecision = new RoundDecision() // { // ReaperAction = reaperAction, // DestroyerAction = destroyerAction, // DoofAction = doofAction, // }; // return roundDecision; //} private static RoundDecision Heuristic(Game game) { var groups = BuildGroups(game.Wrecks, game.Me.Reaper.Pos); ConsoleHelper.Debug(groups.Count); groups.Debug(); var ennemies = game.Players.Skip(1).OrderByDescending(p => p.Score).ToArray(); var bestEnnemyPlayer = ennemies[0]; var worstEnnemyPlayer = ennemies[1]; // Destroyer var closestTanker = game.Tankers .Select(tanker => new { Tanker = tanker, NextPos = tanker.EstimateNextPosition() }) .Where(tanker => tanker.NextPos.IsInRange2(Center, (int)(Radius2 * 0.9))) .OrderBy(tanker => tanker.NextPos.Dist2(game.Me.Destroyer.Pos)) .ThenByDescending(tanker => tanker.Tanker.AvailableWater) .FirstOrDefault(); IAction destroyerAction = new Wait(); var ennemyCloseToReaper = game.Me.Reaper.CountNearEntity(SkillRange2, game.Players[1].Destroyer, game.Players[1].Doof, game.Players[2].Destroyer, game.Players[2].Doof); if (game.Me.Rage >= 150 && game.Me.Reaper.Pos.IsInRange2(game.Me.Destroyer.Pos, SkillRange2) && ennemyCloseToReaper > 1) { destroyerAction = new UseSkill { Target = game.Me.Reaper.Pos }; } else if (closestTanker != null) { var nextPos = closestTanker.NextPos; var move = game.Me.Destroyer.ComputeMove(nextPos); destroyerAction = move; } // Reaper var closestReaper = game.Wrecks .OrderBy(wreck => wreck.Dist2(game.Me.Reaper)) .ThenByDescending(wreck => wreck.AvailableWater) .FirstOrDefault(); var closestGroup = groups .OrderByDescending(g => g.BestPosWeight - g.BestPos.Dist2(game.Me.Reaper.Pos) / 1000) .FirstOrDefault(); IAction reaperAction = destroyerAction; if (closestGroup != null) { //var nextPos = game.Me.Reaper.GetClosest(closestGroup.Wrecks).Pos; var nextPos = closestGroup.BestPos; // if i'm in => protect if (game.Me.Reaper.Pos.IsInRange2(nextPos, 1000000)) { var limitPos = closestGroup.GetLimit(bestEnnemyPlayer.Reaper); ConsoleHelper.Debug($"PROTECT : {nextPos} to {limitPos} (for {bestEnnemyPlayer.Reaper.Id})"); nextPos = limitPos; } else { // if someone block me => go out ConsoleHelper.Debug($"NEXT POS={nextPos}"); var units = new List <Unit>(game.Tankers) { game.Players[1].Destroyer, game.Players[1].Doof, game.Players[2].Destroyer, game.Players[2].Doof }; const int delta = 20; var alphas = new Queue <double>(); alphas.Enqueue(0); for (var alpha = delta; alpha < 360; alpha += delta) { alphas.Enqueue(alpha); alphas.Enqueue(-alpha); } var ok = false; while (!ok) { if (alphas.Count == 0) { break; } var alpha = alphas.Dequeue(); var cos = Math.Cos(alpha); var sin = Math.Sin(alpha); var dx = nextPos.X - game.Me.Reaper.Pos.X; var dy = nextPos.Y - game.Me.Reaper.Pos.Y; var x = game.Me.Reaper.Pos.X + dx * cos + dy * sin; var y = game.Me.Reaper.Pos.Y + dy * cos + dx * sin; var pos = new Position((int)x, (int)y); ConsoleHelper.Debug($"CHECK alpha={alpha} pos={pos}"); var realNextPos = game.Me.Reaper.SimulateNextPosition(pos); ConsoleHelper.Debug($"realpos={realNextPos}"); var segment = new Segment(game.Me.Reaper.Pos, realNextPos, game.Me.Reaper.Radius); var blockers = units.Where(u => segment.IsBlocker(u)).ToList(); if (blockers.Count == 0) { ok = true; nextPos = pos; } else { var ids = string.Join(";", blockers.Select(b => b.Id)); ConsoleHelper.Debug($"BLOCKER count={blockers.Count} {ids}"); } } var tankerOnBestPos = game.Tankers .Where(t => closestGroup.BestPos.Dist2(t.Pos) <= t.Radius * t.Radius).ToList(); if (tankerOnBestPos.Count > 1) { ConsoleHelper.Debug("PROBLEM : Multiple Tankers on best pos"); // change dest } else if (tankerOnBestPos.Count == 1) { ConsoleHelper.Debug("PROBLEM : Tanker on best pos"); // adapt pos } // if oil problem if (game.Oils.Count > 0 && game.Oils.Min(o => closestGroup.BestPos.Dist2(o.Pos)) <= SkillRange2) { ConsoleHelper.Debug("OIL PROBLEM"); } } var move = game.Me.Reaper.ComputeMove(nextPos); reaperAction = move; } else if (closestReaper != null) { var nextPos = closestReaper.Pos; var move = game.Me.Reaper.ComputeMove(nextPos); reaperAction = move; } // Doof // focus on 1st or 2nd ? var ennemyToFocus = game.Me.Score < worstEnnemyPlayer.Score ? worstEnnemyPlayer : bestEnnemyPlayer; var doofMove = game.Me.Doof.ComputeMove(ennemyToFocus.Reaper.Pos); doofMove.Acc = 300; IAction doofAction = doofMove; if (game.Me.Rage >= 30 && game.Me.Doof.Pos.IsInRange2(ennemyToFocus.Reaper.Pos, SkillRange2) && game.Wrecks.Any(w => w.Pos.IsInRange2(ennemyToFocus.Reaper.Pos, w.Radius * w.Radius) && !game.Me.Reaper.Pos.IsInRange2(ennemyToFocus.Reaper.Pos, SkillRange2))) { doofAction = new UseSkill { Target = ennemyToFocus.Reaper.Pos }; } var roundDecision = new RoundDecision() { ReaperAction = reaperAction, DestroyerAction = destroyerAction, DoofAction = doofAction, }; return(roundDecision); }
public static bool GetCurrentFeelingState(UseSkill __instance) { __instance.successCount /= 2; return(true); }
public static bool OnEnterRoom_Bald(ref UseSkill skill) { skill.agent.mental *= 0.4f; return(true); }
public void _SendHandler(ProxySocket Socket, uint Serial, NewProxy Proxy, ref MemoryStream Buffer) { Packet Packet = new Packet(Buffer.ToArray()); switch ((ClientAction)Packet.Action) { #region Walking case ClientAction.Walking: { Walking WalkingDirection = Packet.Read <Walking>(0); Clients[Serial].Aisling.Location.Direction = WalkingDirection.Direction; switch (Clients[Serial].Aisling.Location.Direction) { case FaceDirection.Down: Clients[Serial].Aisling.Location.Y++; break; case FaceDirection.Up: Clients[Serial].Aisling.Location.Y--; break; case FaceDirection.Left: Clients[Serial].Aisling.Location.X--; break; case FaceDirection.Right: Clients[Serial].Aisling.Location.X++; break; } } break; #endregion #region Turning case ClientAction.Turning: { Direction TurnDirection = Packet.Read <Direction>(0); Clients[Serial].Aisling.Location.Direction = TurnDirection.FaceDirection; } break; #endregion #region Skill Used case ClientAction.UseSkill: { UseSkill SkillInfo = Packet.Read <UseSkill>(0); } break; #endregion #region Entity Clicked case ClientAction.ClickEntity: { ClickEntity Subject = Packet.Read <ClickEntity>(0); } break; #endregion #region Last Refresh case (ClientAction)0x38: { Clients[Serial].Aisling.LastRefresh = DateTime.Now; } break; #endregion default: { } break; } }
public void UpdateSkills(ShipModel model) { string[] skills = model.Skills; List <int> removedIndices = new List <int>(); for (int i = 0; i < this.useSkills.Count; i++) { if (false == skills.Contains(this.useSkills[i].ID)) { removedIndices.Add(i); } } foreach (int removeIndex in removedIndices) { if (this.useSkills[removeIndex] != null) { this.useSkills[removeIndex].Release(); } this.useSkills[removeIndex] = new EmptySkill(); } List <int> freeIndices = new List <int>(); for (int i = 0; i < this.useSkills.Count; i++) { if (this.useSkills[i].IsEmpty) { freeIndices.Add(i); } } Dictionary <int, string> newSkills = new Dictionary <int, string>(); int counter = 0; foreach (string skill in skills) { if (false == this.IsUseSkill(skill)) { newSkills.Add(freeIndices[counter++], skill); } } foreach (var pair in newSkills) { UseSkill s = this.GetAvailableSkill(pair.Value); if (s != null) { this.useSkills[pair.Key] = s; } } if (string.IsNullOrEmpty(model.Sets.FullSetSkill)) { this.useSkills[5] = EmptySkill.Get; } else { UseSkill skill = this.GetAvailableSkill(model.Sets.FullSetSkill); this.useSkills[5] = (skill != null) ? skill : EmptySkill.Get; } //generate update skills event when method colled if (_owner != null) { MmoActor actor = this._owner as MmoActor; if (actor != null) { actor.EventOnSkillsUpdated(); } } //owner sent skills updated }
public static void InitUseSkillAction(ref UseSkill __result) { __result.workSpeed *= 2; }
// Update is called once per frame void Update() { // イメージ画像が存在していれば if (moveImage) { // ボタンを離した瞬間 if (Input.GetMouseButtonUp(0)) { // 配列分繰り返す for (int i = 0; i < col.Length; i++) { // マウスのポジションがコライダーの上にあるとき if (col[i].OverlapPoint(Input.mousePosition)) { // もし先に何かスキルがセットされていたら if (skills[i] != moveImage) { // そのスキルを削除する GameObject.Destroy(skills[i]); } // スキル配列にスキルの画像をセットする skills[i] = GameObject.Instantiate(moveImage); GameObject.Destroy(moveImage); // 親を自分に設定する skills[i].transform.SetParent(this.transform); // 位置を調整し、サイズを変更する skills[i].transform.position = col[i].bounds.center; skills[i].transform.localScale = new Vector3(1f, 1f, 1f); skills[i].GetComponent <RectTransform>().sizeDelta = new Vector2(80f, 80f); // 動かすコンポーネントをオフにする skills[i].GetComponent <MoveSprite>().enabled = false; // アイテムを使うクラスの変数定義 UseItem useItem; // そのセットされたものがアイテムならば if ((useItem = skills[i].GetComponent <UseItem>())) { // アイテムを使うスクリプトに番号をセットする useItem.enabled = true; useItem.skillPaletteNumber = i; skillorItemFlag[i] = PALETTE_CODE.ITEM; // アイテムの使用フラグが立っていれば if (UseItem.itemCoolTimeFlag) { // クールタイムのオブジェクトをアクティブにする itemCoolTimeObjects[i].SetActive(true); } } else { // スキルを使うコンポーネントを取得する UseSkill useSkill = skills[i].GetComponent <UseSkill>(); // セットされたものはスキルとする skillorItemFlag[i] = PALETTE_CODE.SKILL; // スキルがセットされているパレットの番号をセットする useSkill.skillPaletteNumber = i; // スキルを使えるようにする useSkill.enabled = true; // スキルを使うコンポーネントをセットする skillCoolTimeObjects[i].GetComponent <UpdateSkillCoolTime>().useSkill = useSkill; // スキルのクールタイムオブジェクトをアクティブ化する skillCoolTimeObjects[i].SetActive(true); } // 離れるコンポーネントをオンにする RemoveSprite skillComponent = skills[i].GetComponent <RemoveSprite>(); skillComponent.enabled = true; skillComponent.parentColliders = col[i]; // 参照を解放する moveImage = null; break; } } } } }
public static bool FinishWorkSuccessfully(UseSkill __instance) { __instance.successCount *= 2; return(true); }