private ScriptExecuteSettingBase CloneCore(bool withChange) { Assembly assembly = AllScriptExecuteSettings.CurrentAssembly; // 获取当前程序集 ScriptExecuteSettingBase copy = (ScriptExecuteSettingBase)assembly.CreateInstance("ScriptExecuteSettings." + Name); copy.Name = Name; copy.DescRaws = CloneVariantUtils.SortedDictionary(DescRaws); copy.TriggerTime = TriggerTime; copy.TriggerRange = TriggerRange; copy.TriggerTimes = TriggerTimes; copy.TriggerDelayTimes = TriggerDelayTimes; copy.RemoveTriggerTime = RemoveTriggerTime; copy.RemoveTriggerRange = RemoveTriggerRange; copy.RemoveTriggerTimes = RemoveTriggerTimes; copy.RemoveTriggerDelayTimes = RemoveTriggerDelayTimes; if (withChange) { copy.M_SideEffectParam = M_SideEffectParam.CloneWithFactor(); } else { copy.M_SideEffectParam = M_SideEffectParam.Clone(); } return(copy); }
public InventoryItem Clone() { InventoryItem ii = new InventoryItem(CloneVariantUtils.TryGetClone(ItemContentInfo), Inventory, GridPos_Matrix); ii.GridPos_Matrix = GridPos_Matrix; return(ii); }
public override Level Clone() { Enemy enemy = new Enemy(LevelPicID, CloneVariantUtils.SortedDictionary(LevelNames), DifficultyLevel, BuildInfo.Clone(), EnemyType, CloneVariantUtils.List(BonusGroups), CloneVariantUtils.List(CardComboList), CardPriority); enemy.LevelID = LevelID; return(enemy); }
public override Level Clone() { Shop shop = new Shop(LevelPicID, CloneVariantUtils.SortedDictionary(LevelNames), DifficultyLevel, CloneVariantUtils.List(ShopItems), ShopItemCardCount, ShopItemOthersCount); shop.LevelID = LevelID; return(shop); }
public Story Clone() { SortedDictionary <int, BuildInfo> newPlayerBuildInfos = CloneVariantUtils.SortedDictionary(PlayerBuildInfos); foreach (KeyValuePair <int, BuildInfo> kv in newPlayerBuildInfos) { kv.Value.BuildID = kv.Key; } SortedDictionary <int, Chapter> newChapters = CloneVariantUtils.SortedDictionary(Chapters); foreach (KeyValuePair <int, Chapter> kv in newChapters) { kv.Value.ChapterID = kv.Key; } SortedDictionary <int, bool> cardUnlockInfos = CloneVariantUtils.SortedDictionary(CardUnlockInfos); Story newStory = new Story( StoryName, newChapters, newPlayerBuildInfos, cardUnlockInfos, StoryGamePlaySettings.Clone(), 0); return(newStory); }
public static CardInfo_Base GetRandomCardInfoByLevelNum(int levelNum, HashSet <int> exceptCardIDs = null) { if (exceptCardIDs == null) { exceptCardIDs = new HashSet <int>(); } CardInfo_Base res = null; if (CardLevelDict.ContainsKey(levelNum)) { List <CardInfo_Base> levelCards = CloneVariantUtils.List(CardLevelDict[levelNum]); List <CardInfo_Base> removeLevelCards = new List <CardInfo_Base>(); foreach (CardInfo_Base cb in levelCards) { if (exceptCardIDs.Contains(cb.CardID)) { removeLevelCards.Add(cb); } } foreach (CardInfo_Base cb in removeLevelCards) { levelCards.Remove(cb); } if (levelCards.Count >= 1) { res = Utils.GetRandomFromList(levelCards, 1)[0]; } } return(res == null ? res : res.Clone()); }
public MechaComponentInfo Clone() { MechaComponentInfo mci = new MechaComponentInfo(MechaComponentType, GridPos, TotalLife, DropProbability); mci.OccupiedGridPositions = CloneVariantUtils.List(OccupiedGridPositions); return(mci); }
public ExecutorInfo Clone() { return(new ExecutorInfo( ClientId, SideEffectExecutorID, MechId, CardId, CardInstanceId, EquipId, CloneVariantUtils.List(TargetClientIds), CloneVariantUtils.List(TargetMechIds), CloneVariantUtils.List(TargetCardInstanceIds), CloneVariantUtils.List(TargetEquipIds), CloneVariantUtils.SortedDictionary(ValueDictionary), IsPlayerBuff)); }
/// <summary> /// Load all prefabs to see which grids does a mecha component take /// </summary> private void LoadBlockOccupiedGridInfo() { MechaComponentOccupiedGridPosDict.Clear(); List <MechaComponentBase> mcbs = new List <MechaComponentBase>(); foreach (string s in Enum.GetNames(typeof(MechaComponentType))) { MechaComponentType mcType = (MechaComponentType)Enum.Parse(typeof(MechaComponentType), s); MechaComponentBase mcb = MechaComponentBase.BaseInitialize(new MechaComponentInfo(mcType, new GridPos(0, 0, GridPos.Orientation.Up), 10, 0), null); mcbs.Add(mcb); MechaComponentOccupiedGridPosDict.Add(mcType, CloneVariantUtils.List(mcb.MechaComponentGrids.MechaComponentGridPositions)); } foreach (MechaComponentBase mcb in mcbs) { DestroyImmediate(mcb.gameObject); } }
private SideEffectBase CloneCore(bool withChange) { Assembly assembly = AllSideEffects.CurrentAssembly; // 获取当前程序集 SideEffectBase copy = (SideEffectBase)assembly.CreateInstance("SideEffects." + Name); copy.Name = Name; copy.DescRaws = CloneVariantUtils.SortedDictionary(DescRaws); if (withChange) { copy.M_SideEffectParam = M_SideEffectParam.CloneWithFactor(); } else { copy.M_SideEffectParam = M_SideEffectParam.Clone(); } copy.Sub_SideEffect = CloneVariantUtils.List(Sub_SideEffect); return(copy); }
public Chapter Variant() { SortedDictionary <int, Level> levels = RandomizeLevelPosition(); SortedDictionary <int, HashSet <int> > routes = GenerateMazeRoutesByAllRoutes(levels); SortedDictionary <int, HashSet <int> > allRoutes = new SortedDictionary <int, HashSet <int> >(); foreach (KeyValuePair <int, HashSet <int> > kv in AllRoutes) { HashSet <int> set = new HashSet <int>(); foreach (int i in kv.Value) { set.Add(i); } allRoutes.Add(kv.Key, set); } return(new Chapter(ChapterID, CloneVariantUtils.SortedDictionary(ChapterNames), levels, ChapterMapRoundCount, allRoutes, routes: routes)); }
public void Initialize(MechaComponentInfo mci, int width, int height, GridPos myPos, List <GridPos> realPositionsInBagPanel, bool moving) { MechaComponentInfo = mci; Image.sprite = BagManager.Instance.MechaComponentSpriteDict[mci.MechaComponentType]; Width = width; Height = height; GridPos = myPos; if (!moving) { GridPos_BeforeMove = myPos; } // Resize and rotate to fit the grid Vector2 size = new Vector2(Width * BagManager.Instance.BagItemGridSize, Height * BagManager.Instance.BagItemGridSize); Vector2 size_rev = new Vector2(Height * BagManager.Instance.BagItemGridSize, Width * BagManager.Instance.BagItemGridSize); bool isRotated = GridPos.orientation == GridPos.Orientation.Right || GridPos.orientation == GridPos.Orientation.Left; if (isRotated) { ((RectTransform)transform).sizeDelta = size; BagItemGridHitBoxes.Initialize(realPositionsInBagPanel, myPos); Image.rectTransform.sizeDelta = size_rev; Image.transform.rotation = Quaternion.Euler(0, 0, 90f); } else { ((RectTransform)transform).sizeDelta = size; BagItemGridHitBoxes.Initialize(realPositionsInBagPanel, myPos); Image.rectTransform.sizeDelta = size; Image.transform.rotation = Quaternion.Euler(0, 0, 0f); } ((RectTransform)transform).anchoredPosition = new Vector2(GridPos.x * BagManager.Instance.BagItemGridSize, -GridPos.z * BagManager.Instance.BagItemGridSize); RealPositionsInBagPanel = realPositionsInBagPanel; if (!moving) { RealPositionsInBagPanel_BeforeMove = CloneVariantUtils.List(RealPositionsInBagPanel); } }
public Chapter Clone() { SortedDictionary <int, Level> levels = CloneVariantUtils.SortedDictionary(Levels); foreach (KeyValuePair <int, Level> kv in levels) { kv.Value.LevelID = kv.Key; } SortedDictionary <int, HashSet <int> > allRoutes = new SortedDictionary <int, HashSet <int> >(); foreach (KeyValuePair <int, HashSet <int> > kv in AllRoutes) { HashSet <int> set = new HashSet <int>(); foreach (int i in kv.Value) { set.Add(i); } allRoutes.Add(kv.Key, set); } SortedDictionary <int, HashSet <int> > routes = new SortedDictionary <int, HashSet <int> >(); foreach (KeyValuePair <int, HashSet <int> > kv in Routes) { HashSet <int> set = new HashSet <int>(); foreach (int i in kv.Value) { set.Add(i); } routes.Add(kv.Key, set); } return(new Chapter(ChapterID, CloneVariantUtils.SortedDictionary(ChapterNames), levels, ChapterMapRoundCount, allRoutes, routes: routes)); }
public CardPriority Clone() { return(new CardPriority(CloneVariantUtils.List(CardIDListByPriority))); }
public CardCombo Clone() { return(new CardCombo(CloneVariantUtils.List(ComboCardIDList))); }
public BonusGroup Clone() { return(new BonusGroup(IsAlways, CloneVariantUtils.List(Bonuses), Probability, IsSingleton)); }