Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
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;
            }
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
 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;
     }
 }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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));
            }
        }
Ejemplo n.º 10
0
        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.");
            }
        }
Ejemplo n.º 11
0
    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);
    }
Ejemplo n.º 12
0
    /// <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;
            }
        }
    }
Ejemplo n.º 13
0
        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();
        }
Ejemplo n.º 14
0
        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)));
                    }
                }
            }
        }
Ejemplo n.º 16
0
    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);
    }
Ejemplo n.º 17
0
 public EffectSelectedCommand(TriggerEffect triggerEffect, EffectInfoModel oldEffectInfoModelValue, EffectInfoModel currentEffectInfoModelValue)
 {
     _triggerEffect               = triggerEffect;
     _oldEffectInfoModelValue     = oldEffectInfoModelValue;
     _currentEffectInfoModelValue = currentEffectInfoModelValue;
 }
Ejemplo n.º 18
0
 public AddEffectCommand(TriggerEffect oldEffectValue)
 {
     _oldEffectValue = oldEffectValue;
 }
Ejemplo n.º 19
0
 public void AddTriggerEffect(TriggerEffect effect)
 {
     effect.Layer = this;
     TriggerEffects.Add(effect);
 }
Ejemplo n.º 20
0
        public void AddExistingEffectToUI(TriggerEffect effect, Dictionary <int, TriggerValue> values)
        {
            Control c = BuildUIFromEffect(effect, values);

            this.AddRow(c);
        }
Ejemplo n.º 21
0
        //
        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);
        }
Ejemplo n.º 22
0
        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();
        }
Ejemplo n.º 23
0
        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");
                }
            }
        }