public bool CanSeatDrinker(SBDrinker drinker) { bool canSit = currentDrinker == null && !drinker.isBeingControlledBySittableComponent; canSit = canSit && owner.tag == drinker.tag; return canSit; }
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); }
public void EjectDrinker() { owner.ProgressBarComponent().progressBar.isVisible = false; owner.TimerComponent().Stop(); currentDrinker.currentSittableComponent = null; currentDrinker.isBeingControlledBySittableComponent = false; currentDrinker.Stand(); currentDrinker = null; }
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)); }
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(); } } }
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"); } }
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"); }
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);*/ }
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; } }
public void HandleDrinkerFinishedDrink(SBDrinker drinker) { if (drinker.tag == 1) { drinkCounter1.drinkCount = drinker.drinkCount; } else if (drinker.tag == 2) { drinkCounter2.drinkCount = drinker.drinkCount; } }
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; }