// Start is called before the first frame update void Awake() { ob = GameObject.FindObjectOfType <Floor>(); obj = GameObject.FindObjectOfType <Coins>(); sobj = GameObject.FindObjectOfType <Spikes>(); sm = GameObject.FindObjectOfType <ScoreManager>(); }
void OnCollisionEnter2D(Collision2D other) { float diffVel = (float)Math.Pow(other.relativeVelocity.magnitude / 4, 2); if (diffVel > 0.7 && !walking) { collisionSound.volume = diffVel * 2; collisionSound.pitch = UnityEngine.Random.Range(0.6f, 0.8f); collisionSound.Play(); } if (other.gameObject.tag == "GROUND" || other.gameObject.tag == "PICKUP") { groundCollisions.Add(other.gameObject); // foreach (GameObject o in groundCollisions) { // print(o); // } } if (other.gameObject.tag == "Spikes") { Spikes s = other.gameObject.GetComponent <Spikes>(); ch.damage(s.damage); } }
public override void Initialize() { base.Initialize(); spikes = Instantiate(spikesPrefab, transform); spikes.CreateSpikes(); }
void OnGUI() { GUILayout.Label("Character", EditorStyles.boldLabel); character = (Character)EditorGUILayout.ObjectField("Character", character, typeof(Character), false); tileGroupEnabled = EditorGUILayout.ToggleLeft("Tile Menu", tileGroupEnabled); float showTileGroup = 0; if (tileGroupEnabled) { showTileGroup = 1; } if (EditorGUILayout.BeginFadeGroup(showTileGroup)) { dirt = (Dirt)EditorGUILayout.ObjectField("Dirt", dirt, typeof(Dirt), false); water = (Water)EditorGUILayout.ObjectField("Water", water, typeof(Water), false); spikes = (Spikes)EditorGUILayout.ObjectField("Spikes", spikes, typeof(Spikes), false); } EditorGUILayout.EndFadeGroup(); doodadGroupEnabled = EditorGUILayout.ToggleLeft("Doodad Menu", doodadGroupEnabled); float showDoodadGroup = 0; if (doodadGroupEnabled) { showDoodadGroup = 1; } if (EditorGUILayout.BeginFadeGroup(showDoodadGroup)) { entrance = (Entrance)EditorGUILayout.ObjectField("Entrance", entrance, typeof(Entrance), false); exit = (Exit)EditorGUILayout.ObjectField("Exit", exit, typeof(Exit), false); boulder = (Boulder)EditorGUILayout.ObjectField("Boulder", boulder, typeof(Boulder), false); } EditorGUILayout.EndFadeGroup(); if (GUILayout.Button("Select stage file")) { stageFilePath = EditorUtility.OpenFilePanel("Load stage file", "", ""); } if (stageFilePath != null) { GUILayout.Label("Stage File Path: " + stageFilePath); } if (GUILayout.Button("Generate Stage")) { if (stageFilePath == null) { EditorUtility.DisplayDialog("Error", "You need to select a stage file.", "OK"); } else if (dirt == null || water == null || entrance == null || exit == null || boulder == null) { EditorUtility.DisplayDialog("Error", "You must assign prefabs to all tile and doodad fields.", "OK"); } else { string stageStr = System.IO.File.ReadAllText(stageFilePath); CreateStage(stageStr); } } }
// Update is called once per frame void Update() { if (Trap.transform.position.x - Player.transform.position.x < 13) { Trap.SetActive(true); } if (Zombie1.transform.position.x - Player.transform.position.x < 13) { Zombie1.SetActive(true); } if (Zombie2.transform.position.x - Player.transform.position.x < 13) { Zombie2.SetActive(true); } if (Spikes.transform.position.x - Player.transform.position.x < 13) { Spikes.SetActive(true); } if (Vampire1.transform.position.x - Player.transform.position.x < 13) { Vampire1.SetActive(true); } if (Vampire2.transform.position.x - Player.transform.position.x < 13) { Vampire2.SetActive(true); } if (Golem.transform.position.x - Player.transform.position.x < 13) { Golem.SetActive(true); } }
public void RefreshReferences() { door = GetComponent <Door> (); spikes = GetComponent <Spikes> (); ladder = GetComponent <Ladder> (); pullPush = GetComponent <PullPush> (); if (door != null) { interactableType = InteractableType.Door; } else if (spikes != null) { interactableType = InteractableType.Spikes; } else if (ladder != null) { interactableType = InteractableType.Ladder; } else if (pullPush != null) { interactableType = InteractableType.PullPush; } else { Debug.LogError("Error: Interactable component with no compatible component included."); Debug.Break(); } }
//получение урона от шипов и монстров private void OnTriggerEnter2D(Collider2D other) { Spikes _spikes = other.GetComponent <Spikes>(); EnemyMoving _enemy = other.GetComponent <EnemyMoving>(); if (_spikes != null && canTakeDamage == true) { _slider.value -= spikesDamage; canTakeDamage = false; StartCoroutine("SpriteChanger"); Audio.StaticFxAudioSource2.pitch = Random.Range(0.9f, 1.1f); Audio.StaticFxAudioSource2.clip = Audio.StaticFxAudioClips[1]; Audio.StaticFxAudioSource2.Play(); StartCoroutine("WaitToDamage"); } if (_enemy != null && canTakeDamage == true) { _slider.value -= enemyDamage; canTakeDamage = false; StartCoroutine("SpriteChanger"); Audio.StaticFxAudioSource2.pitch = Random.Range(0.9f, 1.1f); Audio.StaticFxAudioSource2.clip = Audio.StaticFxAudioClips[1]; Audio.StaticFxAudioSource2.Play(); StartCoroutine("WaitToDamage"); } }
private void ConnectAll() { foreach (Node2D node in this.GetChildren()) { Spikes s = AttemptCast <Spikes>(node); if (s != null) { // Connect this node's NewPlayer signal to the spike's OnNewPlayer method this.Connect("NewPlayer", s, "OnNewPlayer"); } Checkpoint c = AttemptCast <Checkpoint>(node); if (c != null) { // Connect the checkpoint's Activated signal to this node's OnCheckpointActivate method c.Connect("Activated", this, nameof(OnCheckpointActivate)); // Add the checkpoint name to the list of checkpoint node names listCheckpointNodeNames.Add(c.Name); } Goalpoint g = AttemptCast <Goalpoint>(node); if (g != null) { // Connect the goalpoint's Activated signal to this node's OnGoalpointActivated method g.Connect("Activated", this, nameof(OnGoalpointActivated)); } } }
void FixedUpdate() { gameTimer -= Time.deltaTime; gameTimer = (gameTimer < 0.0f) ? 0.0f : gameTimer; if (!spikesDropped) { timerText.GetComponent <Text> ().text = Mathf.Floor(gameTimer).ToString(); } else { theText.fontSize = 1; theText.text = "Balloons\nDestroyed\n" + balloonsDestroyed; Debug.Log(totalEvilBalloons); Debug.Log(evilBalloonsKilled); if (reportingSpikes == expectedSpikes && evilBalloonsKilled == totalEvilBalloons) { endWaitTimer = (endWaitTimer <= 0.0f) ? 0.0f : endWaitTimer - Time.deltaTime; if (endWaitTimer <= 0.0f) { nextLevelTimer = (nextLevelTimer <= 0.0f) ? 0.0f : nextLevelTimer - Time.deltaTime; if (balloonsDestroyed == 0) { theText.text = "Next level\nin " + ((nextLevelTimer > 0.0f) ? Mathf.Floor(nextLevelTimer) : 0); } else if (balloonsDestroyed >= 1) { theText.text = "Retry in\nin " + ((nextLevelTimer > 0.0f) ? Mathf.Floor(nextLevelTimer) : 0); } if (nextLevelTimer <= 0.0f) { if (balloonsDestroyed == 0) { DontDestroyOnLoad(tracker); tracker.completedLevel(); } else if (tracker.currLevel != 0) { DontDestroyOnLoad(tracker); } SceneManager.LoadScene(tracker.getLevelName()); } } } } if (gameTimer >= 0 && gameTimer <= 8.0f && !gameObject.GetComponent <AudioSource>().isPlaying) { gameObject.GetComponent <AudioSource>().Play(); } if (gameTimer == 0.0f) { if (!spikesDropped) { spikesDropped = true; Spikes spikes = GameObject.FindObjectOfType <Spikes>(); spikes.dropSpikes(); } } }
public void ActivateBottomSpike() //This activates a bottom spike when called. { Spike spike2 = new Spike(Height, Width); Spikes.Add(spike2); Controls.Add(spike2); Spikes[Spikes.Count - 1].BottomSpike(); }
public void DropSpike(float spikeSpeed) { // Dejar un spike en su lugar y luego caer Spikes spike = Instantiate(this, transform.position, transform.rotation); GetComponent <Rigidbody2D>().velocity = new Vector2(0, spikeSpeed); Destroy(gameObject, 2); }
public void ActivateTopSpike() //This activates a top spike when called. { Spike spike1 = new Spike(Height, Width); Spikes.Add(spike1); Controls.Add(spike1); Spikes[Spikes.Count - 1].TopSpike(); }
private static void OnCollideHook(On.Celeste.Spikes.orig_OnCollide orig, Spikes spikes, Player player) { // If the player is picking up a holdable, don't kill them. if (player.StateMachine.State == 8) { return; } orig(spikes, player); }
public void Start() { singleton = this; mapCam = GetComponentInChildren <Camera>(); spikes = GetComponentInChildren <Spikes>(); maxPlayerHeight = camTop; baseMapHeight = camTop; createBlockTypeDict(); }
private void ClearAll() { for (int i = 0; i < Spikes.GetLength(0); i++) { for (int j = 0; j < Spikes.GetLength(1); j++) { Spikes[i, j].PreviewMode = false; Spikes[i, j].OutMode = false; Spikes[i, j].Marked = false; } } }
private void AutoRotateSpikes(Spikes spikes) { if (spikes == null) { return; } // Not spikes? No gazpacho. // What rect are we in?? GroundSideRect gsrIn = GetGroundSideRectAt(spikes.PosLocal); if (!GroundSideRect.IsUndefined(gsrIn)) // We're touching one! { float rotation = -gsrIn.side * 90; spikes.Debug_SetRotation(rotation); } }
private bool TryCreateEntity(string entityType, float worldX, float worldY) { CCNode entityAsNode = null; switch (entityType) { case "Player": player = new Player(); entityAsNode = player; break; case "Coin": Coin coin = new Coin(); entityAsNode = coin; coins.Add(coin); break; case "Door": door = new Door(); entityAsNode = door; break; case "Spikes": var spikes = new Spikes(); this.damageDealers.Add(spikes); entityAsNode = spikes; break; case "Enemy": var enemy = new Enemy(); this.damageDealers.Add(enemy); this.enemies.Add(enemy); entityAsNode = enemy; break; } if (entityAsNode != null) { entityAsNode.PositionX = worldX; entityAsNode.PositionY = worldY; gameplayLayer.AddChild(entityAsNode); } return(entityAsNode != null); }
public Block(Position position, Size size, Directions spikeDirections, Level level) : base(new string(wall, size.Width).Repeat(size.Height).To2DCharArray(size.Width), position, level) { if (spikeDirections.HasFlag(Directions.Left)) { Spikes.Add(new Spike(Direction.Left, Height, Position - new Position(1, 0), Level)); } if (spikeDirections.HasFlag(Directions.Down)) { Spikes.Add(new Spike(Direction.Down, Width, Position - new Position(0, 1), Level)); } if (spikeDirections.HasFlag(Directions.Right)) { Spikes.Add(new Spike(Direction.Right, Height, Position + new Position(Width, 0), Level)); } if (spikeDirections.HasFlag(Directions.Up)) { Spikes.Add(new Spike(Direction.Up, Width, Position + new Position(0, Height), Level)); } }
private void TentacleOutline(On.Celeste.Spikes.orig_Render orig, Spikes self) { if (this.InRandomizer && (string)typeof(Spikes).GetField("spikeType", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(self) == "tentacles") { self.SetSpikeColor(Color.Black); var onShake = typeof(Spikes).GetMethod("OnShake", BindingFlags.Instance | BindingFlags.NonPublic); onShake.Invoke(self, new object[] { new Vector2(1, 0) }); orig(self); onShake.Invoke(self, new object[] { new Vector2(-1, 1) }); orig(self); onShake.Invoke(self, new object[] { new Vector2(-1, -1) }); orig(self); onShake.Invoke(self, new object[] { new Vector2(1, -1) }); orig(self); onShake.Invoke(self, new object[] { new Vector2(0, 1) }); self.SetSpikeColor(Color.White); } orig(self); }
private void OnCollisionEnter2D(Collision2D other) { Platform platform = other.collider.GetComponentInParent <Platform>(); if (platform != null) { transform.parent = other.transform; if (OnCollide != null) { OnCollide(platform); } } Spikes spikes = other.collider.GetComponentInParent <Spikes>(); if (spikes != null) { GameManager.Instance.LoseGame(LevelManager.Instance.CurrentLevel.Score); } }
public override void Awake(Scene scene) { base.Awake(scene); Color color = Calc.HexToColor("667da5"); Color disabledColor = new Color(color.R / 255f * (color.R / 255f), color.G / 255f * (color.G / 255f), color.B / 255f * (color.B / 255f), 1f); foreach (var mover in staticMovers) { Spikes spikes = mover.Entity as Spikes; if (spikes != null) { spikes.EnabledColor = Color.White; spikes.DisabledColor = disabledColor; spikes.VisibleWhenDisabled = true; } Spring spring = mover.Entity as Spring; if (spring != null) { spring.DisabledColor = disabledColor; spring.VisibleWhenDisabled = true; } } }
public override void OnInspectorGUI() { base.OnInspectorGUI(); if (mySpikes == null) { mySpikes = (Spikes)target; } //if (GUILayout.Button("Rotate 90°")) { mySpikes.Debug_RotateCW(); } if (!mySpikes.HasOnOffer()) { if (GUILayout.Button("Add OnOffer")) { mySpikes.AddOnOffer(new OnOfferData(0.3f, 1.7f, 0f)); } } else { if (GUILayout.Button("Remove OnOffer")) { mySpikes.RemoveOnOffer(); } } }
void Start() { spikes = GetComponent <Spikes>(); Invoke("Death", lifeTime); }
public Spikes_IdleState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_IdleState _stateData, Spikes _enemy) : base(_entity, _stateMachine, _animBoolName, _stateData) { enemy = _enemy; }
public static Entity CreateEntityCopy(Entity savedEntity, string tag = "EntitiesSavedButNotLoaded") { Entity loadedEntity = null; Type savedType = savedEntity.GetType(); if (savedEntity.GetEntityData() != null) { // 一般 Entity 都是 EntityData + Vector2 loadedEntity = (savedType.GetConstructor(new[] { typeof(EntityData), typeof(Vector2) }) ?.Invoke(new object[] { savedEntity.GetEntityData(), Vector2.Zero })) as Entity; if (loadedEntity == null) { // 部分例如草莓则是 EntityData + Vector2 + EntityID loadedEntity = savedType .GetConstructor(new[] { typeof(EntityData), typeof(Vector2), typeof(EntityID) }) ?.Invoke(new object[] { savedEntity.GetEntityData(), Vector2.Zero, savedEntity.GetEntityId2().EntityId }) as Entity; } if (loadedEntity == null && savedType.IsType <CrystalStaticSpinner>()) { loadedEntity = new CrystalStaticSpinner(savedEntity.GetEntityData(), Vector2.Zero, (CrystalColor)savedEntity.GetField(typeof(CrystalStaticSpinner), "color")); } if (loadedEntity == null && savedType.IsType <TriggerSpikes>()) { loadedEntity = new TriggerSpikes(savedEntity.GetEntityData(), Vector2.Zero, (TriggerSpikes.Directions)savedEntity.GetField(typeof(TriggerSpikes), "direction")); } if (loadedEntity == null && savedType.IsType <Spikes>()) { loadedEntity = new Spikes(savedEntity.GetEntityData(), Vector2.Zero, ((Spikes)savedEntity).Direction); } if (loadedEntity == null && savedType.IsType <TriggerSpikes>()) { loadedEntity = new Spring(savedEntity.GetEntityData(), Vector2.Zero, ((Spring)savedEntity).Orientation); } if (loadedEntity != null) { loadedEntity.Position = savedEntity.Position; loadedEntity.CopyEntityData(savedEntity); loadedEntity.CopyEntityId2(savedEntity); return(loadedEntity); } } // TODO 如果是他们的子类该怎么办…… if (savedType.IsType <BadelineDummy>()) { loadedEntity = new BadelineDummy(savedEntity.GetStartPosition()); } else if (savedType.IsType <AngryOshiro>()) { loadedEntity = new AngryOshiro(savedEntity.GetStartPosition(), (bool)savedEntity.GetField("fromCutscene")); } else if (savedType.IsType <Snowball>()) { loadedEntity = new Snowball(); } else if (savedType.IsType <SlashFx>() && savedEntity is SlashFx slashFx) { loadedEntity = slashFx.Clone(); } else if (savedType.IsType <SpeedRing>() && savedEntity is SpeedRing speedRing) { loadedEntity = speedRing.Clone(); } else if (savedType.IsType <FinalBossShot>() && savedEntity is FinalBossShot finalBossShot) { loadedEntity = finalBossShot.Clone(); } else if (savedType.IsType <FinalBossBeam>() && savedEntity is FinalBossBeam finalBossBeam) { loadedEntity = finalBossBeam.Clone(); } else if (savedType.IsType <BirdTutorialGui>() && savedEntity is BirdTutorialGui birdTutorialGui) { loadedEntity = birdTutorialGui.Clone(); } else if (savedType.IsType <SoundEmitter>() && savedEntity is SoundEmitter soundEmitter) { loadedEntity = SoundEmitter.Play(soundEmitter.Source.EventName, new Entity(soundEmitter.Position)); if (SoundSourceAction.PlayingSoundSources.FirstOrDefault(source => source.EventName == soundEmitter.Source.EventName) == null) { (loadedEntity as SoundEmitter)?.Source.TryCopyObject(soundEmitter.Source); } else { (loadedEntity as SoundEmitter)?.Source.Stop(); } } else if (savedType.IsType <Debris>() && savedEntity is Debris debris) { loadedEntity = Engine.Pooler.Create <Debris>() .Init(debris.GetStartPosition(), (char)debris.GetField("tileset"), (bool)debris.GetField("playSound")); } else if (savedType == typeof(TalkComponent.TalkComponentUI)) { // ignore } else if (savedType.IsType <Entity>()) { loadedEntity = new Entity(savedEntity.GetStartPosition()); } else { if (savedEntity.GetType().FullName == "Celeste.MoveBlock+Debris") { loadedEntity = (savedEntity as Actor).CloneMoveBlockDebris(); } else if (savedEntity.ForceCreateInstance(tag) is Entity newEntity) { loadedEntity = newEntity; } } if (loadedEntity == null) { return(null); } loadedEntity.Position = savedEntity.Position; loadedEntity.CopyEntityId2(savedEntity); loadedEntity.CopyStartPosition(savedEntity); return(loadedEntity); }
public override void onAwake() { spikes = GetComponent <Spikes>(); }
// ---------------------------------------------------------------- // Initialize // ---------------------------------------------------------------- public void Initialize(GameController _gameControllerRef, Transform tf_world, RoomData _roomData) { gameControllerRef = _gameControllerRef; MyRoomData = _roomData; this.gameObject.name = MyRoomData.RoomKey; GameUtils.ParentAndReset(this.gameObject, tf_world); this.transform.localPosition = PosGlobal; // Position me! // Initialize channels! gateChannels = new GateChannel[5]; for (int i = 0; i < gateChannels.Length; i++) { gateChannels[i] = new GateChannel(this, i); } // Instantiate my props! RoomData rd = MyRoomData; ResourcesHandler rh = ResourcesHandler.Instance; int numProgressGates = 0; // for deteriming their indexes. int numVeils = 0; // for determining their indexes. foreach (PropData propData in rd.allPropDatas) { System.Type pt = propData.GetType(); if (false) { } // Enemies else if (pt == typeof(DweebData)) { Dweeb newProp = Instantiate(rh.Dweeb).GetComponent <Dweeb>(); newProp.Initialize(this, propData as DweebData); } // Grounds else if (pt == typeof(CrateData)) { Crate newProp = Instantiate(rh.Crate).GetComponent <Crate>(); newProp.Initialize(this, propData as CrateData); } else if (pt == typeof(DispGroundData)) { DispGround newProp = Instantiate(rh.DispGround).GetComponent <DispGround>(); newProp.Initialize(this, propData as DispGroundData); } else if (pt == typeof(GateData)) { Gate newProp = Instantiate(rh.Gate).GetComponent <Gate>(); newProp.Initialize(this, propData as GateData); gateChannels[newProp.ChannelID].AddGate(newProp); } else if (pt == typeof(ToggleGroundData)) { ToggleGround newProp = Instantiate(rh.ToggleGround).GetComponent <ToggleGround>(); newProp.Initialize(this, propData as ToggleGroundData); } else if (pt == typeof(PlatformData)) { Platform newProp = Instantiate(rh.Platform).GetComponent <Platform>(); newProp.Initialize(this, propData as PlatformData); } else if (pt == typeof(GroundData)) { Ground newProp = Instantiate(rh.Ground).GetComponent <Ground>(); newProp.Initialize(this, propData as GroundData); } // Everything else! else if (pt == typeof(BatteryData)) { Battery newProp = Instantiate(rh.Battery).GetComponent <Battery>(); newProp.Initialize(this, propData as BatteryData); } else if (pt == typeof(BuzzsawData)) { Buzzsaw newProp = Instantiate(rh.Buzzsaw).GetComponent <Buzzsaw>(); newProp.Initialize(this, propData as BuzzsawData); } else if (pt == typeof(CharBarrelData)) { CharBarrel newProp = Instantiate(rh.CharBarrel).GetComponent <CharBarrel>(); newProp.Initialize(this, propData as CharBarrelData, charBarrels.Count); charBarrels.Add(newProp); } else if (pt == typeof(CharUnlockOrbData)) { CharUnlockOrb newProp = Instantiate(rh.CharUnlockOrb).GetComponent <CharUnlockOrb>(); newProp.Initialize(this, propData as CharUnlockOrbData); } else if (pt == typeof(CameraBoundsData)) { CameraBounds newProp = Instantiate(rh.CameraBounds).GetComponent <CameraBounds>(); newProp.Initialize(this, propData as CameraBoundsData); } else if (pt == typeof(GateButtonData)) { GateButton newProp = Instantiate(rh.GateButton).GetComponent <GateButton>(); newProp.Initialize(this, propData as GateButtonData); gateChannels[newProp.ChannelID].AddButton(newProp); } else if (pt == typeof(GemData)) { Gem newProp = Instantiate(rh.Gem).GetComponent <Gem>(); newProp.Initialize(this, propData as GemData, gems.Count); gems.Add(newProp); } else if (pt == typeof(InfoSignData)) { InfoSign newProp = Instantiate(rh.InfoSign).GetComponent <InfoSign>(); newProp.Initialize(this, propData as InfoSignData); } else if (pt == typeof(LaserData)) { Laser newProp = Instantiate(rh.Laser).GetComponent <Laser>(); newProp.Initialize(this, propData as LaserData); } else if (pt == typeof(LiftData)) { Lift newProp = Instantiate(rh.Lift).GetComponent <Lift>(); newProp.Initialize(this, propData as LiftData); } else if (pt == typeof(PlayerStartData)) { PlayerStart newProp = Instantiate(rh.PlayerStart).GetComponent <PlayerStart>(); newProp.Initialize(this, propData as PlayerStartData); } else if (pt == typeof(ProgressGateData)) { ProgressGate newProp = Instantiate(rh.ProgressGate).GetComponent <ProgressGate>(); newProp.Initialize(this, propData as ProgressGateData, numProgressGates++); } else if (pt == typeof(RoomDoorData)) { RoomDoor newProp = Instantiate(rh.RoomDoor).GetComponent <RoomDoor>(); newProp.Initialize(this, propData as RoomDoorData); } else if (pt == typeof(SnackData)) { Snack newProp = Instantiate(rh.Snack).GetComponent <Snack>(); newProp.Initialize(this, propData as SnackData, snacks.Count); snacks.Add(newProp); } else if (pt == typeof(SpikesData)) { Spikes newProp = Instantiate(rh.Spikes).GetComponent <Spikes>(); newProp.Initialize(this, propData as SpikesData); } else if (pt == typeof(TurretData)) { Turret newProp = Instantiate(rh.Turret).GetComponent <Turret>(); newProp.Initialize(this, propData as TurretData); } else if (pt == typeof(VeilData)) { Veil newProp = Instantiate(rh.Veil).GetComponent <Veil>(); newProp.Initialize(this, propData as VeilData, numVeils++); } else { Debug.LogWarning("PropData not recognized: " + propData); } } AddHardcodedRoomElements(); // For development, add bounds so we don't fall out of unconnected rooms! AutoAddInvisibounds(); roomGizmos.Initialize(this); shutters.Initialize(this); }
void Start() { spike = GetComponent <Spikes>(); target = GameObject.FindGameObjectWithTag("Player").GetComponent <Transform>(); }
void CreateSpike() { spike = Instantiate(spikePrefab, transform.position, spikePrefab.transform.rotation).GetComponent <Spikes>(); spike.spiker = this; }
// Update is called once per frame void Update() { movementUpdate(); if (Input.GetKeyDown(KeyCode.Z)) { FindObjectOfType <PlayerValues>().changeXP(100); combatManager.xpText.text = "XP " + player.getXP() + "/" + player.getXPForLevel(player.getLevel()); } if (Input.GetKeyDown(KeyCode.U)) { FindObjectOfType <PlayerValues>().saveStats(); SceneManager.LoadScene("Level2"); } if (player.getHP() <= 0 && !combatManager.inCombat) { SceneManager.LoadScene(SceneManager.GetActiveScene().name); } invincibility = Mathf.Max(0, invincibility - 1); if (!combatManager.inCombat) { combatTimeout = Mathf.Max(0, combatTimeout - 1); } attackTime = Mathf.Max(0, attackTime - 1); if (attackTime == 15) { Instantiate(playerHitbox, transform); } if (Input.GetButtonDown("Attack") && !activeTextBox) { anim.SetTrigger("Attack"); attackTime = 20; if (!grounded) { checkFlip(Input.GetAxis("Horizontal")); } } if (!combatManager.getInCombat()) { //Spieler wird bewegt collisionBox.movement(); //Prüft ob der Spieler auf dem Boden ist grounded = collisionBox.isGrounded(); if (grounded) { //Stacheln if (invincibility == 0) { Spikes floorDamage = collisionBox.getGround().GetComponent <Spikes>(); if (floorDamage != null) { spikeDamage(); } } //Spieler ist auf dem boden if (isStomping) { //Spieler landet von einer Stampfattacke GameObject ground = collisionBox.getGround(); if (ground != null) { Destructable des = ground.GetComponent <Destructable>(); if (des != null && des.stomp) { des.dealDamage(1); collisionBox.setVSpeed(0.4f); } } } else { if (collisionBox.velocity.x != 0) { GameObject wall = collisionBox.getWall(collisionBox.velocity.x > 0 ? Vector3.right : Vector3.left); if (wall != null) { Pushable push = wall.GetComponent <Pushable>(); if (push != null) { wall.GetComponent <CollisionBox>().wallCollisionH(collisionBox.velocity.x > 0 ? push.pushSpeed : -push.pushSpeed); } } } } canDoubleJump = true; isStomping = false; if (Input.GetAxis("Horizontal") != 0 && !activeTextBox) { anim.SetTrigger("Walking"); } else { anim.SetTrigger("Standing"); } } else { anim.SetTrigger("Jumping"); } if (invincibility == 0) { GameObject spikeWall = collisionBox.getWall(collisionBox.velocity.x < 0 ? Vector3.left : Vector3.right); if (spikeWall != null) { Spikes spike = spikeWall.GetComponent <Spikes>(); if (spike != null) { spikeDamage(); } } } if (Input.GetButtonDown("Jump") && !activeTextBox) { if (grounded) { //Sprung von dem Boden anim.ResetTrigger("Standing"); anim.ResetTrigger("Walking"); anim.ResetTrigger("Stomp"); anim.SetTrigger("Jumping"); collisionBox.setVSpeed(jumpForce); grounded = false; } else if (canDoubleJump && abilityDoubleJump) { //Doppelsprung canDoubleJump = false; //Stampfattacke wird abgrbrochen isStomping = false; anim.SetTrigger("DoubleJump"); collisionBox.setVSpeed(doubleJumpForce); } } if (abilityStomp && Input.GetButtonDown("Stomp") && !grounded) { //Stampfattacke anim.ResetTrigger("Jumping"); anim.SetTrigger("Stomp"); isStomping = true; } //Prüft auf Gegnerberührung checkEnemies(); } hpText.text = "HP " + player.getHP() + "/" + player.getFullHP(); }