using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using Microsoft.CodeAnalysis;
using UnityEngine;
using UnityEngine.Animations.Rigging;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("Skibidi.AI")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Skibidi.AI")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("597be394-0d5f-4dbb-ad1d-4d432b1b4802")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
internal sealed class RefSafetyRulesAttribute : Attribute
{
public readonly int Version;
public RefSafetyRulesAttribute(int P_0)
{
Version = P_0;
}
}
}
namespace Skibidi.AI
{
public class SkibidiAI : JesterAI
{
private int prevState = 0;
public TwoBoneIKConstraint headIK;
public AudioClip tauntClip;
private float flushTime;
public override void Start()
{
((JesterAI)this).Start();
Debug.Log((object)"Spawning le skibidi. beware.");
}
public virtual void EvtFlush()
{
Debug.Log((object)"Flushing!");
((EnemyAI)this).SwitchToBehaviourState(0);
}
public override void Update()
{
if (((EnemyAI)this).isEnemyDead)
{
return;
}
switch (((EnemyAI)this).currentBehaviourStateIndex)
{
case 0:
if (prevState != 0)
{
((EnemyAI)this).creatureAnimator.SetBool("flushed", true);
((EnemyAI)this).creatureVoice.Stop(true);
((EnemyAI)this).creatureVoice.PlayOneShot(((EnemyAI)this).enemyType.stunSFX);
flushTime = Time.time;
}
((RigConstraint<TwoBoneIKConstraintJob, TwoBoneIKConstraintData, TwoBoneIKConstraintJobBinder<TwoBoneIKConstraintData>>)(object)headIK).weight = Mathf.Lerp(((RigConstraint<TwoBoneIKConstraintJob, TwoBoneIKConstraintData, TwoBoneIKConstraintJobBinder<TwoBoneIKConstraintData>>)(object)headIK).weight, 0f, Time.deltaTime * 5f);
break;
case 1:
if (prevState != 1)
{
((EnemyAI)this).creatureAnimator.SetBool("flushed", false);
base.farAudio.PlayOneShot(tauntClip);
}
((RigConstraint<TwoBoneIKConstraintJob, TwoBoneIKConstraintData, TwoBoneIKConstraintJobBinder<TwoBoneIKConstraintData>>)(object)headIK).weight = Mathf.Lerp(((RigConstraint<TwoBoneIKConstraintJob, TwoBoneIKConstraintData, TwoBoneIKConstraintJobBinder<TwoBoneIKConstraintData>>)(object)headIK).weight, 1f, Time.deltaTime * 5f);
break;
case 2:
if (prevState != 2)
{
((EnemyAI)this).creatureAnimator.SetBool("flushed", false);
}
((RigConstraint<TwoBoneIKConstraintJob, TwoBoneIKConstraintData, TwoBoneIKConstraintJobBinder<TwoBoneIKConstraintData>>)(object)headIK).weight = Mathf.Lerp(((RigConstraint<TwoBoneIKConstraintJob, TwoBoneIKConstraintData, TwoBoneIKConstraintJobBinder<TwoBoneIKConstraintData>>)(object)headIK).weight, 1f, Time.deltaTime * 5f);
break;
}
prevState = ((EnemyAI)this).currentBehaviourStateIndex;
if (((EnemyAI)this).currentBehaviourStateIndex != 0 || !(Time.time - flushTime < 15f))
{
((JesterAI)this).Update();
((EnemyAI)this).agent.speed = Mathf.Clamp(((EnemyAI)this).agent.speed, 0f, 7.5f);
if (base.popUpTimer > 10f)
{
base.popUpTimer = 10f;
}
}
}
}
public class SkibidiSFX : MonoBehaviour
{
public SkibidiAI enemy;
public AudioClip brrClip;
public AudioClip skibidiClip;
public float skibidiRamp = 0f;
public virtual void PlayBrrSFX()
{
if (skibidiRamp > 1f)
{
skibidiRamp = 1f;
}
((JesterAI)enemy).farAudio.pitch = 1f + skibidiRamp;
((JesterAI)enemy).farAudio.PlayOneShot(brrClip);
skibidiRamp += 0.02f;
}
public virtual void PlaySkibidiSFX()
{
((JesterAI)enemy).farAudio.pitch = 1f;
skibidiRamp = 0f;
((EnemyAI)enemy).creatureVoice.PlayOneShot(skibidiClip);
}
}
}