public override void InitializeReactor()
        {
            if (puzzleDefinition.hasLargeOutput)
            {
                reactorScreen = new LargeOutputReactorArea(this);
            }
            else
            {
                reactorScreen = new ReactorScreen(this);
            }
            Reactor reactor = new Reactor(reactorScreen, new Vector2i(117, 4), new Vector2i(10, 8), puzzleDefinition.hasLargeOutput ? ReactorLayout.LargeOutput : ReactorLayout.Regular, false);

            reactorScreen.reactor = reactor;
            if (!HasExistingReactor() && !Constants.unknown1)
            {
                AddStartInstructions();
                Vector2i firstBonderPosition = new Vector2i(4, 3 - (puzzleDefinition.bonderCount - 1) / 4);
                for (int i = 0; i < puzzleDefinition.bonderCount; ++i)
                {
                    reactor.AddMember(new Vector2i(firstBonderPosition.x + i % 2, firstBonderPosition.y + i / 2), ReactorLayer.Background, new BonderFeature(reactor));
                }
                for (int i = 0; i < puzzleDefinition.GetFeatureCount(FeatureType.Sensor); i++)
                {
                    Vector2i position = new Vector2i(2 + i % 2, 3 - i / 2);
                    reactor.AddMember(position, ReactorLayer.Background, new SensorFeature(reactor));
                }
                for (int i = 0; i < puzzleDefinition.GetFeatureCount(FeatureType.Splitter); i++)
                {
                    reactor.AddMember(new Vector2i(6, 4 + i), ReactorLayer.Background, new SplitterFeature(reactor));
                }
                for (int i = 0; i < puzzleDefinition.GetFeatureCount(FeatureType.Fuser); i++)
                {
                    reactor.AddMember(new Vector2i(6, 3 - i), ReactorLayer.Background, new FuserFeature(reactor));
                }
                for (int i = 0; i < puzzleDefinition.GetFeatureCount(FeatureType.Teleporter); i++)
                {
                    Vector2i position = new Vector2i(2 + i % 2, 4 + i / 2);
                    reactor.AddMember(position, ReactorLayer.Background, new QuantumTunnelFeature(reactor));
                }
            }
            reactorScreen.instructionsPanel = new InstructionsPanel(reactor, availableInstructions);
            reactorScreen.simulationEngine  = new ReactorSimulationEngine(reactor);
        }
예제 #2
0
 public Reactor(ReactorScreen reactorScreen, Vector2i position, Vector2i dimensions, ReactorLayout genum2_1, bool bool_2 = false)
 {
 }