コード例 #1
0
    public bool CanSeatDrinker(SBDrinker drinker)
    {
        bool canSit = currentDrinker == null && !drinker.isBeingControlledBySittableComponent;
        canSit = canSit && owner.tag == drinker.tag;

        return canSit;
    }
コード例 #2
0
	public SBHelpScene() : base("") {
		/*FSprite background = new FSprite("splashBackground.png");
		background.x = Futile.screen.halfWidth;
		background.y = Futile.screen.halfHeight;
		AddChild(background);*/
		
		float boardWidth = 200f;
		float boardHeight = 20f;
		float padding = 2f;
		int boardRowCount = (int)(Futile.screen.height / boardHeight) + 1;
		
		for (int i = 0; i < boardRowCount; i++) {
			float rowOffset = Random.Range(-boardWidth, 0);
			int boardColumnCount = (int)((Futile.screen.width - rowOffset) / boardWidth) + 1;
			for (int j = 0; j < boardColumnCount; j++) {
				FSprite board = WTSquareMaker.Square(boardWidth + padding * 2, boardHeight + padding * 2);
				float rand = Random.Range(-0.05f, 0.05f) + 0.25f;
				board.color = new Color(0.66f + rand, 0.55f + rand, 0.4f + rand);
				board.anchorX = 0;
				board.anchorY = 0;
				board.x = j * boardWidth + rowOffset - padding;
				board.y = i * boardHeight - padding;
				AddChild(board);
			}
		}
		
		FSprite blackFadeyBoy = new FSprite("blackFadeyBoy.psd");
		blackFadeyBoy.alpha = 0.35f;
		blackFadeyBoy.scale = 4f;
		blackFadeyBoy.x = Futile.screen.halfWidth;
		blackFadeyBoy.y = Futile.screen.halfHeight;
		AddChild(blackFadeyBoy);
		
#if ARCADE_VERSION
		continueButtons = new SBArcadeButtons(true);
		continueButtons.x = Futile.screen.halfWidth - 65f;
		continueButtons.y = 145f;
		continueButtons.scale = 0.3f;
		continueButtons.currentFlashingButton = 5;
		AddChild(continueButtons);
#else
		continueLabel = new SBKeyCodeLabel("PRESS SPACE TO CONTINUE", Color.black, new Color(0.3f, 0, 0, 1.0f));
		continueLabel.x = Futile.screen.halfWidth - 340f;
		continueLabel.y = 145f;
		continueLabel.scale = 0.5f;
		AddChild(continueLabel);
#endif

		AddChild(mainContainer);
		
		drinker1 = NewPrefabbedDrinker(Direction.Left, new Color(0.3f, 0.5f, 1.0f, 1.0f), 1);
		drinker2 = NewPrefabbedDrinker(Direction.Right, new Color(1.0f, 0.3f, 0.5f, 1.0f), 2);
		
		Go.to(drinker1, 3.0f, new TweenConfig().setIterations(-1).setEaseType(EaseType.Linear).floatProp("rotation", 360, true));
		Go.to(drinker2, 2.5f, new TweenConfig().setIterations(-1).setEaseType(EaseType.Linear).floatProp("rotation", 360, true));
		
		SetupPage(0);
	}
コード例 #3
0
 public void EjectDrinker()
 {
     owner.ProgressBarComponent().progressBar.isVisible = false;
     owner.TimerComponent().Stop();
     currentDrinker.currentSittableComponent = null;
     currentDrinker.isBeingControlledBySittableComponent = false;
     currentDrinker.Stand();
     currentDrinker = null;
 }
コード例 #4
0
    public void SeatDrinker(SBDrinker drinker)
    {
        if (currentDrinker != null) Debug.Log("you tried to sit on me you f*****g piece of shit f*****g cunthole!");

        currentDrinker = drinker;
        currentDrinker.VelocityComponent().Reset();
        currentDrinker.currentSittableComponent = this;
        currentDrinker.isBeingControlledBySittableComponent = true;

        Go.to(currentDrinker, 0.3f, new TweenConfig()
            .floatProp("x", this.owner.SpriteComponent(0).GetGlobalPosition().x)
            .floatProp("y", this.owner.SpriteComponent(0).GetGlobalPosition().y)
            .onComplete(HandleDrinkerFinishedSittingDown));
    }
コード例 #5
0
ファイル: SBDrinker.cs プロジェクト: wtrebella/SuperBlackout
    public void PunchDrinker(SBDrinker drinker)
    {
        if (isPunching || isInBathroom || isActuallySitting || isBeingControlledBySittableComponent || isDrinking || isReceivingDrink) return;

        isPunching = true;

        //SpriteComponent(1).sprite.element = Futile.atlasManager.GetElementWithName("drinkerPunching.png");
        SpriteComponent(1).StartAnimation(WTMain.animationManager.AnimationForName("punch"));

        if (drinker != null) {
            Direction curDir = this.DirectionComponent().GetCurrentDirection();

            float amt = 1500;

            if (curDir == Direction.Left) {
                drinker.VelocityComponent().xVelocity = -amt;
                this.VelocityComponent().xVelocity = amt;
            }

            else if (curDir == Direction.Right) {
                drinker.VelocityComponent().xVelocity = amt;
                this.VelocityComponent().xVelocity = -amt;
            }

            else if (curDir == Direction.Down) {
                drinker.VelocityComponent().yVelocity = -amt;
                this.VelocityComponent().yVelocity = amt;
            }

            else if (curDir == Direction.Up) {
                drinker.VelocityComponent().yVelocity = amt;
                this.VelocityComponent().yVelocity = -amt;
            }

            if (drinker.HasDrink()) {
                FContainer mainContainer = this.container;

                SBDrink otherDrinkersDrink = drinker.currentDrink;
                drinker.currentDrink = null;
                Vector2 globalPos = drinker.rotatingContainer.LocalToGlobal(new Vector2(otherDrinkersDrink.x, otherDrinkersDrink.y));
                otherDrinkersDrink.RemoveFromContainer();
                otherDrinkersDrink.x = globalPos.x;
                otherDrinkersDrink.y = globalPos.y;
                otherDrinkersDrink.Spill(true);
                mainContainer.AddChild(otherDrinkersDrink);
                (mainContainer as SBGameScene).RefreshZOrders();
            }
        }
    }
コード例 #6
0
	public void HandleDrinkerFinishedDrink(SBDrinker drinker) {
		if (drinker.drinkCount >= SBConfig.DRINKS_TO_WIN) {
			drinker.SpriteComponent(1).StartAnimation(WTMain.animationManager.AnimationForName("drinkerPassOut"));
			isGameOver = true;
			FLabel label = new FLabel("Silkscreen", string.Format(drinker.name + " wins!"));
			label.color = Color.black;
			label.x = Futile.screen.halfWidth;
			label.y = Futile.screen.height * 1.25f;
			Go.to(label, 0.5f, new TweenConfig().floatProp("y", Futile.screen.height * 0.75f));
			AddChild(label);
			PopupEndGameLabels();
			FSoundManager.StopMusic();
			FSoundManager.PlaySound("winSong");
		}
	}
コード例 #7
0
	public void HandleDrinkerPissedHimself(SBDrinker drinker) {
		if (isGameOver) return;

		isGameOver = true;
		SBDrinker otherDrinker;
		if (drinker.tag == 1) otherDrinker = drinker2;
		else otherDrinker = drinker1;
		
		FLabel label = new FLabel("Silkscreen", string.Format(drinker.name + " pissed himself!\n" + otherDrinker.name + " wins!"));
		label.color = Color.black;
		label.x = Futile.screen.halfWidth;
		label.y = Futile.screen.height * 1.25f;
		Go.to(label, 0.5f, new TweenConfig().floatProp("y", Futile.screen.height * 0.75f));
		AddChild(label);
		PopupEndGameLabels();
		FSoundManager.StopMusic();
		FSoundManager.PlaySound("pissSong");
	}
コード例 #8
0
	public SBGameScene(bool addToFutileOnInit) : base("") {
		if (addToFutileOnInit) Futile.AddStage(this);
		
		finishedDrinks = new List<SBDrink>();
		
		backgroundLayer = new SBBackgroundLayer();
		AddChild(backgroundLayer);

		bar = new SBBar();
		AddChild(bar);
				
		drinkers = new List<SBEntity>();
		specialBarStools = new List<SBBarStool>();
		
		specialBarStool1 = new SBBarStool("special bar stool 1", new Color(0.3f, 0.5f, 1.0f, 1.0f));
		specialBarStool1.x = 100f;
		specialBarStool1.y = Futile.screen.height - SBConfig.TOP_UI_HEIGHT - 100f;
		specialBarStool1.tag = 1;
		specialBarStool1.ProgressBarComponent().progressBar.isVisible = false;
		specialBarStool1.SittableComponent().isSpecial = true;
		specialBarStools.Add(specialBarStool1);
		AddChild(specialBarStool1);
		
		specialBarStool2 = new SBBarStool("special bar stool 2", new Color(1.0f, 0.3f, 0.5f, 1.0f));
		specialBarStool2.x = Futile.screen.width - 100f;
		specialBarStool2.y = Futile.screen.height - SBConfig.TOP_UI_HEIGHT - 100f;
		specialBarStool2.tag = 2;
		specialBarStool2.ProgressBarComponent().progressBar.isVisible = false;
		specialBarStool2.SittableComponent().isSpecial = true;
		specialBarStools.Add(specialBarStool2);
		AddChild(specialBarStool2);
		
		drinker1 = new SBDrinker("player 1");
		drinker1.tag = 1;
		drinker1.SpriteComponent(1).sprite.color = new Color(0.3f, 0.5f, 1.0f, 1.0f);
		drinker1.x = Futile.screen.halfWidth - 200f;
		drinker1.y = (Futile.screen.height - SBConfig.TOP_UI_HEIGHT) / 2f;
		drinker1.ProgressBarComponent().progressBar.isVisible = false;
		drinker1.ProgressBarComponent().progressBar.y += 45f;
		drinker1.DirectionComponent().FaceDirection(Direction.Left, true);
		//drinker1.SpriteComponent().sprite.color = new Color(0.3f, 0.5f, 1.0f, 1.0f);
		drinkers.Add(drinker1);
		AddChild(drinker1);

		drinker2 = new SBDrinker("player 2");
		drinker2.tag = 2;
		drinker2.SpriteComponent(1).sprite.color = new Color(1.0f, 0.3f, 0.5f, 1.0f);
		drinker2.x = Futile.screen.halfWidth + 200f;
		drinker2.y = (Futile.screen.height - SBConfig.TOP_UI_HEIGHT) / 2f;
		drinker2.ProgressBarComponent().progressBar.isVisible = false;
		drinker2.ProgressBarComponent().progressBar.y += 45f;
		drinker2.DirectionComponent().FaceDirection(Direction.Right, true);
		//drinker2.SpriteComponent().sprite.color = new Color(1.0f, 0.3f, 0.5f, 1.0f);
		drinkers.Add(drinker2);
		AddChild(drinker2);
		
		hudLayer = new SBHudLayer();
		
		drinker1.SignalFinishedDrink += hudLayer.HandleDrinkerFinishedDrink;
		drinker2.SignalFinishedDrink += hudLayer.HandleDrinkerFinishedDrink;
		drinker1.SignalFinishedDrink += HandleDrinkerFinishedDrink;
		drinker2.SignalFinishedDrink += HandleDrinkerFinishedDrink;
		drinker1.SignalBladderChanged += hudLayer.HandleBladderChanged;
		drinker2.SignalBladderChanged += hudLayer.HandleBladderChanged;
		drinker1.SignalPissedHimself += HandleDrinkerPissedHimself;
		drinker2.SignalPissedHimself += HandleDrinkerPissedHimself;
		AddChild(hudLayer);
		
		countdownLabel = new FLabel("Silkscreen", "3");
		countdownLabel.color = Color.red;
		countdownLabel.x = Futile.screen.halfWidth;
		countdownLabel.y = (Futile.screen.height - SBConfig.TOP_UI_HEIGHT) / 2f;
		AddChild(countdownLabel);
		
		borderLayer = new SBBorderLayer();
		AddChild(borderLayer);
		
		playAgain = new FLabel("Silkscreen", "play again");
		playAgain.scale = 0.5f;
		playAgain.x = Futile.screen.halfWidth - 200f;
		playAgain.y = -175f;
		playAgain.color = Color.black;
		AddChild(playAgain);
		
		mainMenu = new FLabel("Silkscreen", "main menu");
		mainMenu.scale = 0.5f;
		mainMenu.x = Futile.screen.halfWidth + 200f;
		mainMenu.y = -175f;
		mainMenu.color = Color.black;
		AddChild(mainMenu);
			
#if ARCADE_VERSION
		playAgainButtons = new SBArcadeButtons(true);
		playAgainButtons.currentFlashingButton = 2;
		playAgainButtons.scale = 0.3f;
		playAgainButtons.x = playAgain.x - 90f;
		playAgainButtons.y = playAgain.y - 140f;
		AddChild(playAgainButtons);
		
		mainMenuButtons = new SBArcadeButtons(true);
		mainMenuButtons.currentFlashingButton = 5;
		mainMenuButtons.scale = 0.3f;
		mainMenuButtons.x = mainMenu.x - 90f;
		mainMenuButtons.y = mainMenu.y - 140f;
		AddChild(mainMenuButtons);
#else
		playAgainLabel = new SBKeyCodeLabel("SPACE", Color.black, new Color(0.7f, 0, 0, 1.0f));
		playAgainLabel.scale = 0.5f;
		playAgainLabel.x = playAgain.x - 75f;
		playAgainLabel.y = playAgain.y - 100f;
		AddChild(playAgainLabel);
		
		mainMenuLabel = new SBKeyCodeLabel("Q", Color.black, new Color(0.7f, 0, 0, 1.0f));
		mainMenuLabel.scale = 0.5f;
		mainMenuLabel.x = mainMenu.x - 10f;
		mainMenuLabel.y = mainMenu.y - 100f;
		AddChild(mainMenuLabel);
#endif
		
		/*tempLogLabel = new FLabel("Silkscreen", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
		tempLogLabel.color = Color.black;
		tempLogLabel.x = 400f;
		tempLogLabel.y = Futile.screen.halfHeight;
		tempLogLabel.scale = 0.35f;
		AddChild(tempLogLabel);*/
	}
コード例 #9
0
ファイル: SBHudLayer.cs プロジェクト: wtrebella/SuperBlackout
    public void HandleBladderChanged(SBDrinker drinker)
    {
        if (drinker.tag == 1) {
            bladderBar1.percent = drinker.drinkAmountInBladder / SBConfig.MAX_BLADDER_CAPACITY;
        }

        else if (drinker.tag == 2) {
            bladderBar2.percent = drinker.drinkAmountInBladder / SBConfig.MAX_BLADDER_CAPACITY;
        }
    }
コード例 #10
0
ファイル: SBHudLayer.cs プロジェクト: wtrebella/SuperBlackout
    public void HandleDrinkerFinishedDrink(SBDrinker drinker)
    {
        if (drinker.tag == 1) {
            drinkCounter1.drinkCount = drinker.drinkCount;
        }

        else if (drinker.tag == 2) {
            drinkCounter2.drinkCount = drinker.drinkCount;
        }
    }
コード例 #11
0
	public SBDrinker NewPrefabbedDrinker(Direction faceDirection, Color color, int tag) {
		SBDrinker drinker = new SBDrinker("drinker");
		drinker.tag = tag;
		drinker.DirectionComponent().FaceDirection(faceDirection);
		drinker.ProgressBarComponent().progressBar.isVisible = false;
		drinker.SpriteComponent(1).sprite.color = color;
		return drinker;
	}