int GetTriggerEffectPoint(PlayerState state, TriggerEffect effect) { if (effect == null) { return(0); } int p = 0; foreach (EffectState es in effect.effectState) { switch (es.effectType) { case EffectType.UnitCostAdd: foreach (Card c in state.unit) { p += c.State.Cost; } break; case EffectType.AttackAdd: p += es.value * ai.atk; break; } } return(p); }
void f_FunctionNameRightClick(object sender, EventArgs e) { mOptionsMenu = new ContextMenu(); FunctorEditor fe = sender as FunctorEditor; TriggerEffect comp = fe.Tag as TriggerEffect; if (comp == null) { return; } MenuItem commentOutItem = new MenuItem("Comment Out"); commentOutItem.Checked = comp.CommentOut; commentOutItem.Click += new EventHandler(commentOutItem_Click); commentOutItem.Tag = fe; mOptionsMenu.MenuItems.Add(commentOutItem); if (comp.NeedsUpgrade == true) { MenuItem upgradeItem = new MenuItem("+Upgrade Version"); upgradeItem.Click += new EventHandler(upgradeItem_Click); upgradeItem.Tag = fe; mOptionsMenu.MenuItems.Add(upgradeItem); } mOptionsMenu.Show(fe, new Point(0, 0)); }
public void DeleteTriggerEffect(TriggerEffect eff) { if (m_EffectList.IndexOf(eff) == TriggerEffectListView.SelectedIndex) { if ((TriggerEffectListView.SelectedIndex - 1) != -1) { TriggerEffectListView.SelectedIndex = TriggerEffectListView.SelectedIndex - 1; } else if (((TriggerEffectListView.SelectedIndex - 1) == -1) && (m_EffectList.Count > 1)) { TriggerEffectListView.SelectedIndex = TriggerEffectListView.SelectedIndex + 1; } else { TriggerEffectListView.SelectedIndex = -1; } } m_EffectList.Remove(eff); if (m_EffectList.Count == 0) { TriggerEffectTextBlock.Visibility = Visibility.Visible; } }
private void AddEffectButton_Click(object sender, RoutedEventArgs e) { TriggerEffect effect = new TriggerEffect(GetCommonEffects().Length); // First trigger effect effect.Layer = m_Layer; m_EffectList.Add(effect); if (m_EffectList.Count != 0) { TriggerEffectTextBlock.Visibility = Visibility.Collapsed; } TriggerEffectListView.SelectedIndex = m_EffectList.Count - 1; ReUndoManager.Store(new AddEffectCommand(effect)); }
void commentOutItem_Click(object sender, EventArgs e) { MenuItem mi = sender as MenuItem; FunctorEditor fe = mi.Tag as FunctorEditor; TriggerEffect comp = fe.Tag as TriggerEffect; if (comp == null) { return; } comp.CommentOut = !comp.CommentOut; UpdateComponentVisuals(comp, fe); }
protected override void OnNavigatedTo(NavigationEventArgs e) { m_TriggerEffect = e.Parameter as TriggerEffect; if (m_TriggerEffect == null) { EffectInfoStackPanel.Visibility = Visibility.Collapsed; return; } this.DataContext = m_Info; ColorPattern.DataContext = new ColorPatternViewModel(m_Info); SetColorMode(m_TriggerEffect.Info); Bindings.Update(); }
void UpdateComponentVisuals(TriggerEffect effect, FunctorEditor fe) { if (effect.CommentOut == true) { if (mLastBackColor != Color.DarkGray) { mLastBackColor = fe.BackColor; } fe.BackColor = Color.DarkGray; } else if (mLastBackColor != Color.Empty) { fe.BackColor = Color.Empty;// mLastBackColor; } }
override protected void OnReordered() { List <TriggerEffect> effects = new List <TriggerEffect>(); foreach (Control c in mControls) { FunctorEditor f = c as FunctorEditor; if (f != null) { TriggerEffect effect = f.Tag as TriggerEffect; if (effect != null) { effects.Add(effect); } } } ParentTriggerNamespace.ReOrderEffects(Trigger, effects, EffectsOnFalse); }
public LayerModel(LayerModel layerModel) { if (layerModel.nameOfOriginalLayer != "") //be copyed layer then copy again { originalLayer = layerModel.originalLayer; //set original layer nameOfOriginalLayer = layerModel.nameOfOriginalLayer; } else { originalLayer = layerModel; //set original layer nameOfOriginalLayer = layerModel.Name; } originalLayer.copy_count++; if (originalLayer.copy_count == 1) { Name = nameOfOriginalLayer + "_copy"; } else { Name = nameOfOriginalLayer + "_copy" + originalLayer.copy_count; } Eye = layerModel.Eye; isTriggering = layerModel.isTriggering; m_ZoneDictionary = new Dictionary <int, int[]>(layerModel.m_ZoneDictionary); TriggerAction = layerModel.TriggerAction; EffectLineViewModels = new ObservableCollection <EffectLineViewModel>(); EffectLineViewModels.CollectionChanged += TimelineEffectsChanged; TriggerEffects = new List <TriggerEffect>(); foreach (TriggerEffect each_TriggerEffect in layerModel.TriggerEffects) { TriggerEffects.Add(TriggerEffect.Clone(each_TriggerEffect)); } foreach (EffectLineViewModel eff in layerModel.EffectLineViewModels) { AddTimelineEffect(new EffectLineViewModel(eff)); } }
public override void OnDelete(SuperListDragButton button) { bool deleteWorked = false; FunctorEditor f = button.Tag as FunctorEditor; if (f != null) { TriggerEffect effect = f.Tag as TriggerEffect; if (f != null) { if (ParentTriggerNamespace.DeleteEffect(Trigger, effect, EffectsOnFalse, true)) { base.OnDelete(button); deleteWorked = true; } } } if (deleteWorked == false) { CoreGlobals.getErrorManager().OnSimpleWarning("Error deleting effect."); } }
private static CardState YerowDragonsArmer() { CardState card = new CardState(); card.cardName = "黄龍の鎧"; card.cardName_Read = "こうりゅうのよろい"; card.cardType = ObjectType.Support; card.cardAligment = CardAligment.SowrdMan; card.Cost = 6; card.trigger = TriggerType.TurnStart; card.atk = -3; card.text = "攻撃力ー3\n次のターン開始時、\nこのカードを破壊。\nそのターンの攻撃力+4"; card.cardSprite = Resources.Load <Sprite>(CardSprits.YerowArmer); card.isSpriteOnFrame = true; TriggerEffect effect = new TriggerEffect(); effect.TriggerType = TriggerType.OnDest; effect.effectState.Add(new EffectState(EffectType.AttackAdd, 4, 1, new Target(TargetType.friend, CardZoneType.Unit, ObjectType.Player, true))); card.Effect.Add(effect); return(card); }
/// <summary> /// 発動済みカードの常駐誘発効果を確認し、発動する処理 /// </summary> /// <returns></returns> public IEnumerator EffectTriggerCheck(TriggerType type, EventBlock block) { Card target = null; List <Card> cards = new List <Card>(Cards);//処理中にCardsから離れる(破壊される)ので、別の場所でデータ保持 foreach (Card card in cards) { target = card.GetComponent <Support>(); if (target != null) { foreach (CardEffect effect in target.State.Effect) { TriggerEffect te = effect as TriggerEffect; if (te != null && te.TriggerType == type) { te.TriggerBlock = block; yield return(StartCoroutine(effect.EffectCall(Constants.BATTLE.FindCardZoneHolder(this), target))); } } target = null; } } }
public override void OnCopyRequest(SuperList otherlist, SuperListDragButton toMove) { //base.OnCopyRequest(otherlist, toMove); Control c = toMove.Tag as Control; FunctorEditor f = c as FunctorEditor; if (f == null) { return; } TriggerEffect comp = f.Tag as TriggerEffect; if (comp == null) { return; } //comp.CopyTo TriggerControl trigCont = otherlist.Parent.Parent as TriggerControl; TriggerClipboard temp = new TriggerClipboard(); //temp.CopyValues(this.mParentTriggerNamespace.GetValueList()); temp.mValues = this.mParentTriggerNamespace.GetValues(); int newID; TriggerEffect e = temp.GetEffect(comp, this.mParentTriggerNamespace);//, out newID); EffectsList ef = otherlist as EffectsList; //mParentTriggerNamespace.InsertEffect(trigCont.Trigger.ID, e, temp.mValues, EffectsOnFalse, out newID); mParentTriggerNamespace.InsertEffect(trigCont.Trigger.ID, e, this.mParentTriggerNamespace.GetValues(), ef.EffectsOnFalse, out newID); ef.AddExistingEffectToUI(e, this.mParentTriggerNamespace.GetValues()); mParentTriggerNamespace.ProcessVarMapping(); }
public FieldManager(Player player) { MapId = player.MapId; InstanceId = player.InstanceId; BoundingBox = MapEntityStorage.GetBoundingBox(MapId); // Load default npcs for map from config foreach (MapNpc npc in MapEntityStorage.GetNpcs(MapId)) { IFieldObject <Npc> fieldNpc = RequestFieldObject(new Npc(npc.Id) { ZRotation = (short)(npc.Rotation.Z * 10) }); if (fieldNpc.Value.Friendly == 2) { fieldNpc.Coord = npc.Coord.ToFloat(); AddNpc(fieldNpc); } else { // NPC is an enemy IFieldObject <Mob> fieldMob = RequestFieldObject(new Mob(npc.Id) { ZRotation = (short)(npc.Rotation.Z * 10) }); fieldMob.Coord = npc.Coord.ToFloat(); AddMob(fieldMob); } } // Spawn map's mobs at the mob spawners foreach (MapMobSpawn mobSpawn in MapEntityStorage.GetMobSpawns(MapId)) { if (mobSpawn.SpawnData == null) { Debug.WriteLine($"Missing mob spawn data: {mobSpawn}"); continue; } IFieldObject <MobSpawn> fieldMobSpawn = RequestFieldObject(new MobSpawn(mobSpawn)); fieldMobSpawn.Coord = mobSpawn.Coord.ToFloat(); State.AddMobSpawn(fieldMobSpawn); SpawnMobs(fieldMobSpawn); } // Load default portals for map from config foreach (MapPortal portal in MapEntityStorage.GetPortals(MapId)) { IFieldObject <Portal> fieldPortal = RequestFieldObject(new Portal(portal.Id) { IsVisible = portal.IsVisible, IsEnabled = portal.Enable, IsMinimapVisible = portal.MinimapVisible, Rotation = portal.Rotation.ToFloat(), TargetMapId = portal.Target, TargetPortalId = portal.TargetPortalId, PortalType = portal.PortalType }); fieldPortal.Coord = portal.Coord.ToFloat(); AddPortal(fieldPortal); } MapMetadata mapMetadata = MapMetadataStorage.GetMetadata(MapId); if (mapMetadata != null) { string xBlockName = mapMetadata.XBlockName; Triggers = TriggerLoader.GetTriggers(xBlockName).Select(initializer => { TriggerContext context = new TriggerContext(this, Logger); TriggerState startState = initializer.Invoke(context); return(new TriggerScript(context, startState)); }).ToArray(); } foreach (MapTriggerMesh mapTriggerMesh in MapEntityStorage.GetTriggerMeshes(MapId)) { if (mapTriggerMesh != null) { TriggerMesh triggerMesh = new TriggerMesh(mapTriggerMesh.Id, mapTriggerMesh.IsVisible); State.AddTriggerObject(triggerMesh); } } foreach (MapTriggerEffect mapTriggerEffect in MapEntityStorage.GetTriggerEffects(MapId)) { if (mapTriggerEffect != null) { TriggerEffect triggerEffect = new TriggerEffect(mapTriggerEffect.Id, mapTriggerEffect.IsVisible); State.AddTriggerObject(triggerEffect); } } foreach (MapTriggerActor mapTriggerActor in MapEntityStorage.GetTriggerActors(MapId)) { if (mapTriggerActor != null) { TriggerActor triggerActor = new TriggerActor(mapTriggerActor.Id, mapTriggerActor.IsVisible, mapTriggerActor.InitialSequence); State.AddTriggerObject(triggerActor); } } foreach (MapTriggerCamera mapTriggerCamera in MapEntityStorage.GetTriggerCameras(MapId)) { if (mapTriggerCamera != null) { TriggerCamera triggerCamera = new TriggerCamera(mapTriggerCamera.Id, mapTriggerCamera.IsEnabled); State.AddTriggerObject(triggerCamera); } } foreach (MapTriggerCube mapTriggerCube in MapEntityStorage.GetTriggerCubes(MapId)) { if (mapTriggerCube != null) { TriggerCube triggerCube = new TriggerCube(mapTriggerCube.Id, mapTriggerCube.IsVisible); State.AddTriggerObject(triggerCube); } } foreach (MapTriggerLadder mapTriggerLadder in MapEntityStorage.GetTriggerLadders(MapId)) { if (mapTriggerLadder != null) { TriggerLadder triggerLadder = new TriggerLadder(mapTriggerLadder.Id, mapTriggerLadder.IsVisible); State.AddTriggerObject(triggerLadder); } } foreach (MapTriggerRope mapTriggerRope in MapEntityStorage.GetTriggerRopes(MapId)) { if (mapTriggerRope != null) { TriggerRope triggerRope = new TriggerRope(mapTriggerRope.Id, mapTriggerRope.IsVisible); State.AddTriggerObject(triggerRope); } } foreach (MapTriggerSound mapTriggerSound in MapEntityStorage.GetTriggerSounds(MapId)) { if (mapTriggerSound != null) { TriggerSound triggerSound = new TriggerSound(mapTriggerSound.Id, mapTriggerSound.IsEnabled); State.AddTriggerObject(triggerSound); } } foreach (MapTriggerSkill mapTriggerSkill in MapEntityStorage.GetTriggerSkills(MapId)) { if (mapTriggerSkill != null) { TriggerSkill triggerSkill = new TriggerSkill(mapTriggerSkill.Id, mapTriggerSkill.SkillId, mapTriggerSkill.SkillLevel, mapTriggerSkill.Count, mapTriggerSkill.Position); IFieldObject <TriggerSkill> fieldTriggerSkill = RequestFieldObject(triggerSkill); fieldTriggerSkill.Coord = fieldTriggerSkill.Value.Position; State.AddTriggerSkills(fieldTriggerSkill); } } // Load breakables foreach (MapBreakableActorObject mapActor in MapEntityStorage.GetBreakableActors(MapId)) { if (mapActor != null) { BreakableActorObject actor = new BreakableActorObject(mapActor.EntityId, mapActor.IsEnabled, mapActor.HideDuration, mapActor.ResetDuration); State.AddBreakable(actor); } } foreach (MapBreakableNifObject mapNif in MapEntityStorage.GetBreakableNifs(MapId)) { if (mapNif != null) { BreakableNifObject nif = new BreakableNifObject(mapNif.EntityId, mapNif.IsEnabled, mapNif.TriggerId, mapNif.HideDuration, mapNif.ResetDuration); State.AddBreakable(nif); } } // Load interact objects foreach (MapInteractObject mapInteract in MapEntityStorage.GetInteractObjects(MapId)) { if (mapInteract != null) { InteractObject interactObject = new InteractObject(mapInteract.EntityId, mapInteract.InteractId, mapInteract.Type, InteractObjectState.Default); State.AddInteractObject(interactObject); } } // Load cubes if (MapId == (int)Map.PrivateResidence) { Home home = GameServer.HomeManager.GetHomeById(player.VisitingHomeId); if (home != null) { // Add cubes to state Dictionary <long, Cube> cubes = home.FurnishingInventory; foreach (Cube cube in cubes.Values.Where(x => x.PlotNumber == 1)) { IFieldObject <Cube> ugcCube = RequestFieldObject(cube); ugcCube.Coord = cube.CoordF; ugcCube.Rotation = cube.Rotation; State.AddCube(ugcCube); } // Add portals to state IEnumerable <Cube> cubePortals = cubes.Values.Where(x => x.Item.Id == 50400158); foreach (Cube cubePortal in cubePortals) { Portal portal = new Portal(GuidGenerator.Int()) { IsVisible = true, IsEnabled = true, IsMinimapVisible = false, Rotation = cubePortal.Rotation, PortalType = PortalTypes.Home }; IFieldObject <Portal> fieldPortal = RequestFieldObject(portal); fieldPortal.Coord = cubePortal.CoordF; fieldPortal.Value.UGCPortalMethod = cubePortal.PortalSettings.Method; if (!string.IsNullOrEmpty(cubePortal.PortalSettings.DestinationTarget)) { switch (cubePortal.PortalSettings.Destination) { case UGCPortalDestination.PortalInHome: fieldPortal.Value.TargetMapId = (int)Map.PrivateResidence; break; case UGCPortalDestination.SelectedMap: fieldPortal.Value.TargetMapId = int.Parse(cubePortal.PortalSettings.DestinationTarget); break; case UGCPortalDestination.FriendHome: fieldPortal.Value.TargetHomeAccountId = long.Parse(cubePortal.PortalSettings.DestinationTarget); break; } } cubePortal.PortalSettings.PortalObjectId = fieldPortal.ObjectId; AddPortal(fieldPortal); } } } else { List <Home> homes = GameServer.HomeManager.GetPlots(MapId); foreach (Home home in homes) { Dictionary <long, Cube> cubes = home.FurnishingInventory; foreach (Cube cube in cubes.Values.Where(x => x.PlotNumber != 1)) { IFieldObject <Cube> ugcCube = RequestFieldObject(cube); ugcCube.Coord = cube.CoordF; ugcCube.Rotation = cube.Rotation; State.AddCube(ugcCube); } } } if (MapEntityStorage.HasHealingSpot(MapId)) { List <CoordS> healingSpots = MapEntityStorage.GetHealingSpot(MapId); if (State.HealingSpots.IsEmpty) { foreach (CoordS coord in healingSpots) { int objectId = GuidGenerator.Int(); State.AddHealingSpot(RequestFieldObject(new HealingSpot(objectId, coord))); } } } }
public FieldManager(int mapId, long instanceId) { MapId = mapId; InstanceId = instanceId; BoundingBox = MapEntityStorage.GetBoundingBox(mapId); // Load default npcs for map from config foreach (MapNpc npc in MapEntityStorage.GetNpcs(mapId)) { IFieldObject <Npc> fieldNpc = RequestFieldObject(new Npc(npc.Id) { ZRotation = (short)(npc.Rotation.Z * 10) }); if (fieldNpc.Value.Friendly == 2) { fieldNpc.Coord = npc.Coord.ToFloat(); AddNpc(fieldNpc); } else { // NPC is an enemy IFieldObject <Mob> fieldMob = RequestFieldObject(new Mob(npc.Id) { ZRotation = (short)(npc.Rotation.Z * 10) }); fieldMob.Coord = npc.Coord.ToFloat(); AddMob(fieldMob); } } // Spawn map's mobs at the mob spawners foreach (MapMobSpawn mobSpawn in MapEntityStorage.GetMobSpawns(mapId)) { if (mobSpawn.SpawnData == null) { Debug.WriteLine($"Missing mob spawn data: {mobSpawn}"); continue; } IFieldObject <MobSpawn> fieldMobSpawn = RequestFieldObject(new MobSpawn(mobSpawn)); fieldMobSpawn.Coord = mobSpawn.Coord.ToFloat(); State.AddMobSpawn(fieldMobSpawn); SpawnMobs(fieldMobSpawn); } // Load default portals for map from config foreach (MapPortal portal in MapEntityStorage.GetPortals(mapId)) { IFieldObject <Portal> fieldPortal = RequestFieldObject(new Portal(portal.Id) { IsVisible = portal.IsVisible, IsEnabled = portal.Enable, IsMinimapVisible = portal.MinimapVisible, Rotation = portal.Rotation.ToFloat(), TargetMapId = portal.Target, PortalType = portal.PortalType }); fieldPortal.Coord = portal.Coord.ToFloat(); AddPortal(fieldPortal); } // Load default InteractObjects List <IFieldObject <InteractObject> > actors = new List <IFieldObject <InteractObject> > { }; foreach (MapInteractObject interactObject in MapEntityStorage.GetInteractObject(mapId)) { // TODO: Group these fieldActors by their correct packet type. actors.Add(RequestFieldObject(new InteractObject(interactObject.Uuid, interactObject.Name, interactObject.Type) { })); } AddInteractObject(actors); MapMetadata mapMetadata = MapMetadataStorage.GetMetadata(mapId); if (mapMetadata != null) { string xBlockName = mapMetadata.XBlockName; Triggers = TriggerLoader.GetTriggers(xBlockName).Select(initializer => { TriggerContext context = new TriggerContext(this, Logger); TriggerState startState = initializer.Invoke(context); return(new TriggerScript(context, startState)); }).ToArray(); } foreach (MapTriggerMesh mapTriggerMesh in MapEntityStorage.GetTriggerMeshes(mapId)) { if (mapTriggerMesh != null) { TriggerMesh triggerMesh = new TriggerMesh(mapTriggerMesh.Id, mapTriggerMesh.IsVisible); State.AddTriggerObject(triggerMesh); } } foreach (MapTriggerEffect mapTriggerEffect in MapEntityStorage.GetTriggerEffects(mapId)) { if (mapTriggerEffect != null) { TriggerEffect triggerEffect = new TriggerEffect(mapTriggerEffect.Id, mapTriggerEffect.IsVisible); State.AddTriggerObject(triggerEffect); } } foreach (MapTriggerActor mapTriggerActor in MapEntityStorage.GetTriggerActors(mapId)) { if (mapTriggerActor != null) { TriggerActor triggerActor = new TriggerActor(mapTriggerActor.Id, mapTriggerActor.IsVisible, mapTriggerActor.InitialSequence); State.AddTriggerObject(triggerActor); } } foreach (MapTriggerCamera mapTriggerCamera in MapEntityStorage.GetTriggerCameras(mapId)) { if (mapTriggerCamera != null) { TriggerCamera triggerCamera = new TriggerCamera(mapTriggerCamera.Id, mapTriggerCamera.IsEnabled); State.AddTriggerObject(triggerCamera); } } foreach (MapTriggerCube mapTriggerCube in MapEntityStorage.GetTriggerCubes(mapId)) { if (mapTriggerCube != null) { TriggerCube triggerCube = new TriggerCube(mapTriggerCube.Id, mapTriggerCube.IsVisible); State.AddTriggerObject(triggerCube); } } foreach (MapTriggerLadder mapTriggerLadder in MapEntityStorage.GetTriggerLadders(mapId)) { if (mapTriggerLadder != null) { TriggerLadder triggerLadder = new TriggerLadder(mapTriggerLadder.Id, mapTriggerLadder.IsVisible); State.AddTriggerObject(triggerLadder); } } foreach (MapTriggerRope mapTriggerRope in MapEntityStorage.GetTriggerRopes(mapId)) { if (mapTriggerRope != null) { TriggerRope triggerRope = new TriggerRope(mapTriggerRope.Id, mapTriggerRope.IsVisible); State.AddTriggerObject(triggerRope); } } foreach (MapTriggerSound mapTriggerSound in MapEntityStorage.GetTriggerSounds(mapId)) { if (mapTriggerSound != null) { TriggerSound triggerSound = new TriggerSound(mapTriggerSound.Id, mapTriggerSound.IsEnabled); State.AddTriggerObject(triggerSound); } } // Load breakables foreach (MapBreakableActorObject mapActor in MapEntityStorage.GetBreakableActors(mapId)) { if (mapActor != null) { BreakableActorObject actor = new BreakableActorObject(mapActor.EntityId, mapActor.IsEnabled, mapActor.HideDuration, mapActor.ResetDuration); State.AddBreakable(actor); } } foreach (MapBreakableNifObject mapNif in MapEntityStorage.GetBreakableNifs(mapId)) { if (mapNif != null) { BreakableNifObject nif = new BreakableNifObject(mapNif.EntityId, mapNif.IsEnabled, mapNif.TriggerId, mapNif.HideDuration, mapNif.ResetDuration); State.AddBreakable(nif); } } if (MapEntityStorage.HasHealingSpot(MapId)) { List <CoordS> healingSpots = MapEntityStorage.GetHealingSpot(MapId); if (State.HealingSpots.IsEmpty) { foreach (CoordS coord in healingSpots) { int objectId = GuidGenerator.Int(); State.AddHealingSpot(RequestFieldObject(new HealingSpot(objectId, coord))); } } } }
public void SetEffect(EffectPlayType pType, EffectType etype, int value, int turn = 0, Target target = null, int cost = 0, TriggerType trigger = TriggerType.None, GameObject animEffect = null) { if (etype == EffectType.AttackPower || etype == EffectType.SkillPower) { SetPower(etype, value); return; } CardEffect effect; switch (pType) { case EffectPlayType.triggerEffect: effect = new TriggerEffect() { TriggerType = trigger }; break; case EffectPlayType.staticEffect: effect = new StaticEffect(); break; case EffectPlayType.playEffect: effect = new PlayEffect(); break; case EffectPlayType.activeEffect: effect = new ActiveEffect(cost); break; case EffectPlayType.none: default: effect = new CardEffect(); break; } //カード効果に応じてアニメーション設定 if (animEffect == null) { switch (etype) { case EffectType.CostAdd: case EffectType.UnitCostAdd: case EffectType.SkillDamageAdd: case EffectType.AttackAdd: case EffectType.AttackTime: animEffect = null; break; case EffectType.CardDest: case EffectType.RandCardDest: break; case EffectType.CardDraft: case EffectType.CardDraw: case EffectType.GetDisZoneCard: case EffectType.CardUnDraft: case EffectType.GetDispCard: break; case EffectType.Counter: break; case EffectType.Damage: animEffect = Resources.Load <GameObject>(Constants.CARD_EFFECT_MAGICK_FIRE); break; case EffectType.Heal: animEffect = Resources.Load <GameObject>(Constants.CARD_EFFECT_HEAL); break; } } effect.effectState.Add(new EffectState(etype, value, turn, target, animEffect)); Effect.Add(effect); }
public EffectSelectedCommand(TriggerEffect triggerEffect, EffectInfoModel oldEffectInfoModelValue, EffectInfoModel currentEffectInfoModelValue) { _triggerEffect = triggerEffect; _oldEffectInfoModelValue = oldEffectInfoModelValue; _currentEffectInfoModelValue = currentEffectInfoModelValue; }
public AddEffectCommand(TriggerEffect oldEffectValue) { _oldEffectValue = oldEffectValue; }
public void AddTriggerEffect(TriggerEffect effect) { effect.Layer = this; TriggerEffects.Add(effect); }
public void AddExistingEffectToUI(TriggerEffect effect, Dictionary <int, TriggerValue> values) { Control c = BuildUIFromEffect(effect, values); this.AddRow(c); }
// public Control BuildUIFromEffect(TriggerEffect effect, Dictionary <int, TriggerValue> values) { FunctorEditor f = new FunctorEditor(); f.LayoutStyle = FunctorEditor.eLayoutStyle.VerticleList; f.Dock = DockStyle.Fill; f.Tag = effect; f.FunctionName = effect.Type; f.LogicalHost = this; f.FunctionNameClicked += new EventHandler(f_FunctionNameClicked); f.FunctionNameHover += new EventHandler(f_HotSelect); f.FunctionNameRightClick += new EventHandler(f_FunctionNameRightClick); List <Control> inputList = new List <Control>(); List <Control> outputList = new List <Control>(); bool bErrors = false; bool bWatchForChange = TriggerSystemMain.mTriggerDefinitions.IsDynamicComponent(effect.Type); foreach (TriggerVariable v in effect.Parameter) { try { if (v is TriggersInputVariable) { inputList.Add(BuildUIFromParameterVariable(effect, v, values[v.ID], bWatchForChange)); } else if (v is TriggersOutputVariable) { outputList.Add(BuildUIFromParameterVariable(effect, v, values[v.ID], bWatchForChange)); } } catch (System.Exception ex) { bErrors = true; CoreGlobals.getErrorManager().SendToErrorWarningViewer("Missing value: " + v.ID); } } f.SetupParameters(inputList, outputList); //Debug info if (effect.HasErrors == true || bErrors) { f.SetErrorText(); } else if (effect.HasWarnings == true) { f.SetWarningText(); } else if (effect.JustUpgraded == true) { f.SetUpdatedText(); } UpdateComponentVisuals(effect, f); return(f); }
void upgradeItem_Click(object sender, EventArgs e) { MenuItem mi = sender as MenuItem; FunctorEditor fe = mi.Tag as FunctorEditor; TriggerEffect comp = fe.Tag as TriggerEffect; if (comp == null) { return; } comp.CommentOut = true; //UpdateComponentVisuals(comp, fe); TriggerEffect effect; Dictionary <int, TriggerValue> values; TriggerSystemMain.mTriggerDefinitions.GetTriggerEffect(comp.Type, out effect, out values); int newID; mParentTriggerNamespace.InsertEffect(this.Trigger.ID, effect, values, this.EffectsOnFalse, out newID, comp); //copy over old values Dictionary <int, int> oldIDsBySigID = new Dictionary <int, int>(); for (int i = 0; i < comp.Parameter.Count; i++) { oldIDsBySigID[comp.Parameter[i].SigID] = comp.Parameter[i].ID; } List <TriggerVariable> oldParams = comp.Parameter; for (int i = 0; i < effect.Parameter.Count; i++) { int oldVarID; if (oldIDsBySigID.TryGetValue(effect.Parameter[i].SigID, out oldVarID)) { effect.Parameter[i].ID = oldVarID; values[oldVarID] = mParentTriggerNamespace.GetValues()[oldVarID]; } } // Halwes - 12/10/2007 - This is a specific update for ModifyProtoData trigger effect revision 3 or older. if ((effect.Type == "ModifyProtoData") && (comp.Version <= 3)) { foreach (TriggerVariable var in effect.Parameter) { if (var.GetName() == "DataType") { if (values[var.GetID()].Value == "0") { values[var.GetID()].Value = "Enable"; } else if (values[var.GetID()].Value == "1") { values[var.GetID()].Value = "Hitpoints"; } else if (values[var.GetID()].Value == "2") { values[var.GetID()].Value = "Shieldpoints"; } else if (values[var.GetID()].Value == "3") { values[var.GetID()].Value = "AmmoMax"; } else if (values[var.GetID()].Value == "4") { values[var.GetID()].Value = "LOS"; } else if (values[var.GetID()].Value == "5") { values[var.GetID()].Value = "MaximumVelocity"; } else if (values[var.GetID()].Value == "6") { values[var.GetID()].Value = "MaximumRange"; } else if (values[var.GetID()].Value == "7") { values[var.GetID()].Value = "ResearchPoints"; } else if (values[var.GetID()].Value == "8") { values[var.GetID()].Value = "ResourceTrickleRate"; } else if (values[var.GetID()].Value == "9") { values[var.GetID()].Value = "MaximumResourceTrickleRate"; } else if (values[var.GetID()].Value == "10") { values[var.GetID()].Value = "RateAmount"; } else if (values[var.GetID()].Value == "11") { values[var.GetID()].Value = "RateMultiplier"; } else if (values[var.GetID()].Value == "12") { values[var.GetID()].Value = "Resource"; } else if (values[var.GetID()].Value == "13") { values[var.GetID()].Value = "Projectile"; } else if (values[var.GetID()].Value == "14") { values[var.GetID()].Value = "Damage"; } else if (values[var.GetID()].Value == "15") { values[var.GetID()].Value = "AttackRate"; } else if (values[var.GetID()].Value == "16") { values[var.GetID()].Value = "MinRange"; } else if (values[var.GetID()].Value == "17") { values[var.GetID()].Value = "AOERadius"; } else if (values[var.GetID()].Value == "18") { values[var.GetID()].Value = "AOEPrimaryTargetFactor"; } else if (values[var.GetID()].Value == "19") { values[var.GetID()].Value = "AOEDistanceFactor"; } else if (values[var.GetID()].Value == "20") { values[var.GetID()].Value = "AOEDamageFactor"; } else if (values[var.GetID()].Value == "21") { values[var.GetID()].Value = "Accuracy"; } else if (values[var.GetID()].Value == "22") { values[var.GetID()].Value = "MovingAccuracy"; } else if (values[var.GetID()].Value == "23") { values[var.GetID()].Value = "MaxDeviation"; } else if (values[var.GetID()].Value == "24") { values[var.GetID()].Value = "MovingMaxDeviation"; } else if (values[var.GetID()].Value == "25") { values[var.GetID()].Value = "DataAccuracyDistanceFactor"; } else if (values[var.GetID()].Value == "26") { values[var.GetID()].Value = "AccuracyDeviationFactor"; } else if (values[var.GetID()].Value == "27") { values[var.GetID()].Value = "MaxVelocityLead"; } else if (values[var.GetID()].Value == "28") { values[var.GetID()].Value = "WorkRate"; } else if (values[var.GetID()].Value == "29") { values[var.GetID()].Value = "BuildPoints"; } else if (values[var.GetID()].Value == "30") { values[var.GetID()].Value = "Cost"; } else if (values[var.GetID()].Value == "31") { values[var.GetID()].Value = "AutoCloak"; } else if (values[var.GetID()].Value == "32") { values[var.GetID()].Value = "MoveWhileCloaked"; } else if (values[var.GetID()].Value == "33") { values[var.GetID()].Value = "ActionEnable"; } else if (values[var.GetID()].Value == "34") { values[var.GetID()].Value = "CommandEnable"; } else if (values[var.GetID()].Value == "35") { values[var.GetID()].Value = "BountyResource"; } else if (values[var.GetID()].Value == "36") { values[var.GetID()].Value = "TributeCost"; } else if (values[var.GetID()].Value == "37") { values[var.GetID()].Value = "ShieldRegenRate"; } else if (values[var.GetID()].Value == "38") { values[var.GetID()].Value = "ShieldRegenDelay"; } else if (values[var.GetID()].Value == "39") { values[var.GetID()].Value = "DamageModifier"; } else if (values[var.GetID()].Value == "40") { values[var.GetID()].Value = "PopCap"; } else if (values[var.GetID()].Value == "41") { values[var.GetID()].Value = "PopMax"; } else if (values[var.GetID()].Value == "42") { values[var.GetID()].Value = "UnitTrainLimit"; } else if (values[var.GetID()].Value == "43") { values[var.GetID()].Value = "SquadTrainLimit"; } else if (values[var.GetID()].Value == "44") { values[var.GetID()].Value = "SquadTrainLimit"; } else if (values[var.GetID()].Value == "45") { values[var.GetID()].Value = "RepairCost"; } else if (values[var.GetID()].Value == "46") { values[var.GetID()].Value = "RepairTime"; } else if (values[var.GetID()].Value == "47") { values[var.GetID()].Value = "PowerRechargeTime"; } else if (values[var.GetID()].Value == "48") { values[var.GetID()].Value = "PowerUseLimit"; } } else if (var.GetName() == "AmountRelation") { if (values[var.GetID()].Value == "0") { values[var.GetID()].Value = "Absolute"; } else if (values[var.GetID()].Value == "1") { values[var.GetID()].Value = "BasePercent"; } else if (values[var.GetID()].Value == "2") { values[var.GetID()].Value = "Percent"; } else if (values[var.GetID()].Value == "3") { values[var.GetID()].Value = "Assign"; } else if (values[var.GetID()].Value == "4") { values[var.GetID()].Value = "BasePercentAssign"; } } } } effect.JustUpgraded = true; //Control c = BuildUIFromEffect(effect, values); //this.AddRow(c); ReloadUI(); }
void mTriggerOutControlPoint_ControlPointRemoved(BasicControlPoint cp, IControlPoint other) { TriggerControl otherctrl = other.TagObject as TriggerControl; if (otherctrl != null) { bool onfalse = (cp.GetName() == "Effect.False") ? true : false; TriggerEffect toremove = null; if (onfalse == false) { foreach (TriggerEffect effect in Trigger.TriggerEffects.Effects) { if ((effect.Type == TriggerSystemMain.mTriggerDefinitions.GetDeactivateEffectName()) || (effect.Type == TriggerSystemMain.mTriggerDefinitions.GetActivateEffectName())) { TriggerValue val = ParentTriggerNamespace.GetValues()[effect.Parameter[0].ID]; if (val.Value == otherctrl.Trigger.ID.ToString()) { toremove = effect; } } } } if (onfalse == true) { foreach (TriggerEffect effect in Trigger.TriggerEffectsFalse.Effects) { if ((effect.Type == TriggerSystemMain.mTriggerDefinitions.GetDeactivateEffectName()) || (effect.Type == TriggerSystemMain.mTriggerDefinitions.GetActivateEffectName())) { TriggerValue val = ParentTriggerNamespace.GetValues()[effect.Parameter[0].ID]; if (val.Value == otherctrl.Trigger.ID.ToString()) { toremove = effect; } } } } if (toremove != null) { ParentTriggerNamespace.DeleteEffect(Trigger, toremove, onfalse); } } TemplateControl templateControl = other.TagObject as TemplateControl; if (templateControl != null) { string name = other.ToString(); BasicControlPoint othercp = other as BasicControlPoint; TriggersTemplateInputActionBinder targetBinder = templateControl.mInputActionCPs[othercp]; TriggerBindInfo toremove = null; string linkName = cp.Name; int linkID = this.Trigger.ID; foreach (TriggerBindInfo b in targetBinder.TargetIDs) { if ((b.LinkName == linkName) && (b.ID == linkID)) { toremove = b; } } if (toremove != null) { targetBinder.TargetIDs.Remove(toremove); } else { CoreGlobals.getErrorManager().LogErrorToNetwork("mTriggerOutControlPoint_ControlPointRemoved: error deleting template link"); } } }