void CreateNodes(object p1, object p2) { _enemies = new Dictionary <int, Enemy>(); _rewards = new Dictionary <int, Reward>(); // StageConfig stageConfig = (StageConfig)p1; foreach (StageLayer sl in stageConfig.Layers) { foreach (BaseStageNode node in sl.Nodes) { if (node is StageNodeFight) { StageNodeFight nodeF = (StageNodeFight)node; int index = 0;//如果改为多敌人,那么这里也要修改为顺序增加的值 Enemy enemy = new Enemy(nodeF.EnemyId, nodeF.EnemyLv, nodeF.EnemyAi, index); _enemies.Add(node.Id, enemy); } else if (node is StageNodeReward) { StageNodeReward nodeR = (StageNodeReward)node; Reward reward = new Reward(nodeR); _rewards.Add(node.Id, reward); } } } }
public Reward(StageNodeReward node) { ConditionData = new List <Condition>(); foreach (StageNodeReward.ConditionConfig c in node.Rewards) { Condition thisCondition = new Condition(); thisCondition.Express = c.ConditionExpress; thisCondition.Val = c.Val; thisCondition.Rewards = new List <Item>();; foreach (KeyValuePair <int, int> pair in c.Rewards) { Item item = new Item(pair.Key, pair.Value); thisCondition.Rewards.Add(item); } ConditionData.Add(thisCondition); } Icon = node.Icon; }
void CreateStageConfig() { StageNodeStart nodeStart1 = new StageNodeStart(1, 0, "P1", "", "Assets/Res/Icon/cards/ico_head_aoyou"); nodeStart1.NextNodes.Add(10); nodeStart1.NextNodes.Add(11); StageNodeStart nodeStart2 = new StageNodeStart(2, 1, "P2", "", "Assets/Res/Icon/cards/ico_head_aoyou"); nodeStart2.NextNodes.Add(10); nodeStart2.NextNodes.Add(11); StageNodeFight nodeFight1 = new StageNodeFight(10, 0, "Fight", "", "Assets/Res/Icon/cards/ico_head_anduxie"); nodeFight1.SetData(100, 1, 1); nodeFight1.NextNodes.Add(20); nodeFight1.NextNodes.Add(21); StageNodeFight nodeFight2 = new StageNodeFight(20, 1, "Fight", "", "Assets/Res/Icon/cards/ico_head_anduxie"); nodeFight2.SetData(100, 1, 1); nodeFight2.NextNodes.Add(40); StageNodeSafe nodeSafe = new StageNodeSafe(40, 0, "House", "", "Assets/Res/Icon/Item/ico_common_mianzhan"); nodeSafe.NextNodes.Add(30); StageNodeFight nodeFightBoss = new StageNodeFight(30, 0, "FighBoss", "", "Assets/Res/Icon/cards/ico_head_baoshi"); nodeFightBoss.SetData(200, 1, 1); StageNodeReward nodeReward1 = new StageNodeReward(11, 1, "Reward", "", "Assets/Res/Icon/cards/ico_head_guidiao"); Dictionary <int, int> cRewards = new Dictionary <int, int>(); cRewards.Add(10000, 10); cRewards.Add(10001, 20); nodeReward1.AddData("Job", "2", cRewards); nodeReward1.AddData(string.Empty, "", cRewards); nodeReward1.NextNodes.Add(20); nodeReward1.NextNodes.Add(21); StageNodeReward nodeReward2 = new StageNodeReward(21, 0, "Reward", "", "Assets/Res/Icon/cards/ico_head_guidiao"); Dictionary <int, int> cRewards2 = new Dictionary <int, int>(); cRewards2.Add(10000, 11); cRewards2.Add(10001, 21); nodeReward2.AddData("Job", "2", cRewards2); nodeReward2.AddData(string.Empty, "", cRewards2); nodeReward2.NextNodes.Add(40); StageLayer layer0 = new StageLayer(0, "Start", ""); layer0.Nodes.Add(nodeStart1); layer0.Nodes.Add(nodeStart2); StageLayer layer1 = new StageLayer(1, "L1", ""); layer1.Nodes.Add(nodeFight1); layer1.Nodes.Add(nodeReward1); StageLayer layer2 = new StageLayer(2, "L2", ""); layer2.Nodes.Add(nodeFight2); layer2.Nodes.Add(nodeReward2); StageLayer layer3 = new StageLayer(3, "L3", ""); layer3.Nodes.Add(nodeSafe); StageLayer layer4 = new StageLayer(4, "Boss", ""); layer4.Nodes.Add(nodeFightBoss); stageConfig = new StageConfig(0, "Stage First", ""); stageConfig.Layers.Add(layer0); stageConfig.Layers.Add(layer1); stageConfig.Layers.Add(layer2); stageConfig.Layers.Add(layer3); stageConfig.Layers.Add(layer4); stageConfig.ItemIds.Add(20000); stageConfig.Sort(); }