protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { skeleton = GetProtoEntity <SkeletonFloater>(); // primary loot lootDroplist .Add <ItemInsectMeatRaw>(count: 1, countRandom: 1) .Add <ItemSlime>(count: 10, countRandom: 10) .Add <ItemToxin>(count: 5, countRandom: 5) .Add <ItemSalt>(count: 5, countRandom: 5) .Add <ItemRubberRaw>(count: 8, countRandom: 4) .Add <ItemKeinite>(count: 2, countRandom: 2); // extra loot lootDroplist.Add(condition: SkillHunting.ServerRollExtraLoot, nestedList: new DropItemsList(outputs: 2) .Add <ItemInsectMeatRaw>(count: 1) .Add <ItemSlime>(count: 5) .Add <ItemToxin>(count: 2) .Add <ItemSalt>(count: 2)); if (!IsServer) { return; } ServerCharacterDeathMechanic.CharacterKilled += ServerCharacterKilledHandler;
private static void SetLoopSounds( ICharacter character, BaseCharacterClientState clientState, AppliedCharacterInput appliedInput, ProtoCharacterSkeleton protoSkeleton, bool isIdle) { CharacterSound soundKey; if (isIdle) { soundKey = CharacterSound.LoopIdle; } else { var isRunningMode = (appliedInput.MoveModes & CharacterMoveModes.ModifierRun) != 0; soundKey = isRunningMode ? CharacterSound.LoopRun : CharacterSound.LoopWalk; } var(soundPresetCharacter, soundPresetMovement) = protoSkeleton.GetSoundPresets(character); clientState.SoundEmitterLoopCharacter.NextSoundResource = soundPresetCharacter.GetSound(soundKey); clientState.SoundEmitterLoopMovemement.NextSoundResource = soundPresetMovement.GetSound(soundKey); // ensure the sounds are played clientState.SoundEmitterLoopCharacter.Play(); clientState.SoundEmitterLoopMovemement.Play(); }
protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { skeleton = GetProtoEntity <SkeletonPsiGrove>(); // primary loot lootDroplist .Add <ItemSlime>(count: 2, countRandom: 1) .Add <ItemTwigs>(count: 4, countRandom: 2) .Add <ItemSugar>(count: 1, countRandom: 1) .Add <ItemOrePragmium>(count: 1, probability: 0.3); // extra loot lootDroplist.Add(condition: SkillHunting.ServerRollExtraLoot, nestedList: new DropItemsList(outputs: 1) .Add <ItemSlime>(count: 1) .Add <ItemTwigs>(count: 2) ); if (!IsServer) { return; } ServerCharacterDeathMechanic.CharacterKilled += ServerCharacterKilledHandler;
public virtual void ClientSetupSkeleton( IItem item, ICharacter character, ProtoCharacterSkeleton protoCharacterSkeleton, IComponentSkeleton skeletonRenderer, List <IClientComponent> skeletonComponents) { protoCharacterSkeleton.ClientSetupItemInHand( skeletonRenderer, "WeaponMelee", this.GetCharacterTextureResource(item, character)); var isActive = GetPublicState(item).IsActive; this.ClientSetupSkeletonAnimation(isActive, item, character, skeletonRenderer, skeletonComponents); if (!isActive) { // not active light return; } var sceneObject = character.ClientSceneObject; var componentLightSource = this.ClientCreateLightSource(item, character); var componentLightInSkeleton = sceneObject.AddComponent <ClientComponentLightInSkeleton>(); componentLightInSkeleton.Setup(skeletonRenderer, this.ItemLightConfig, componentLightSource, "Weapon", isPrimaryLight: true); skeletonComponents.Add(componentLightInSkeleton); skeletonComponents.Add(componentLightSource); }
protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { skeleton = GetProtoEntity <SkeletonPragmiumQueen>(); }
protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { skeleton = GetProtoEntity <SkeletonScorpion>(); // primary loot lootDroplist .Add <ItemInsectMeatRaw>(count: 1, countRandom: 1) .Add <ItemAnimalFat>(count: 3, countRandom: 2) .Add <ItemToxin>(count: 2, countRandom: 2) .Add <ItemSlime>(count: 2, countRandom: 2) // requires device .Add <ItemKeiniteRaw>(count: 2, countRandom: 1, condition: ItemKeiniteCollector.ConditionHasDeviceEquipped); // extra loot lootDroplist.Add(condition: SkillHunting.ServerRollExtraLoot, nestedList: new DropItemsList(outputs: 2) .Add <ItemInsectMeatRaw>(count: 1, countRandom: 1) .Add <ItemAnimalFat>(count: 1, countRandom: 1) .Add <ItemToxin>(count: 1, countRandom: 1) .Add <ItemSlime>(count: 1, countRandom: 1)); }
public override void ClientSetupSkeleton( IItem item, ICharacter character, ProtoCharacterSkeleton protoCharacterSkeleton, IComponentSkeleton skeletonRenderer, List <IClientComponent> skeletonComponents) { base.ClientSetupSkeleton(item, character, protoCharacterSkeleton, skeletonRenderer, skeletonComponents); if (!this.ItemLightConfig.IsLightEnabled) { return; } var sceneObject = character.ClientSceneObject; var componentLightSource = this.ClientCreateLightSource(item, character, sceneObject); var componentLightInSkeleton = sceneObject.AddComponent <ClientComponentLightInSkeleton>(); componentLightInSkeleton.Setup(skeletonRenderer, this.ItemLightConfig, componentLightSource, "Weapon", isPrimaryLight: false); skeletonComponents.Add(componentLightInSkeleton); skeletonComponents.Add(componentLightSource); }
protected override void SharedGetSkeletonProto( IDynamicWorldObject gameObject, out ProtoCharacterSkeleton protoSkeleton, ref double scale) { protoSkeleton = Api.GetProtoEntity <SkeletonMechBehemoth>(); }
protected override void SharedGetSkeletonProto( ICharacter character, out ProtoCharacterSkeleton protoSkeleton, ref double scale) { protoSkeleton = GetProtoEntity <SkeletonScorpion>(); }
protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { skeleton = GetProtoEntity <SkeletonHoneyBadger>(); // primary loot lootDroplist .Add <ItemMeatRaw>(count: 1) .Add <ItemLeather>(count: 1, countRandom: 1) .Add <ItemBones>(count: 1, countRandom: 1); // random loot lootDroplist.Add(probability: 1 / 2.0, nestedList: new DropItemsList(outputs: 1) .Add <ItemAnimalFat>(count: 1, countRandom: 1) .Add <ItemBones>(count: 1, countRandom: 1)); // extra loot lootDroplist.Add(condition: SkillHunting.ServerRollExtraLoot, nestedList: new DropItemsList(outputs: 2) .Add <ItemMeatRaw>(count: 1, weight: 1 / 2.0) .Add <ItemLeather>(count: 1) .Add <ItemBones>(count: 1) .Add <ItemAnimalFat>(count: 1)); }
protected override void PrepareProtoCharacterTurret( out ProtoItemWeaponTurret protoItemWeaponTurret, out ProtoCharacterSkeleton skeleton, ref double scale) { protoItemWeaponTurret = GetProtoEntity <ItemWeaponTurretHeavy>(); skeleton = GetProtoEntity <SkeletonTurretHeavy>(); }
protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { base.PrepareProtoCharacterMob(out skeleton, ref scale, lootDroplist); lootDroplist.Clear(); }
protected override void SharedGetSkeletonProto( IDynamicWorldObject gameObject, out ProtoCharacterSkeleton protoSkeleton, ref double scale) { // no skeleton, only a hoverboard sprite underneath the player character protoSkeleton = null; }
protected sealed override void SharedGetSkeletonProto( [CanBeNull] ICharacter character, out ProtoCharacterSkeleton protoSkeleton, ref double scale) { protoSkeleton = this.protoSkeleton; scale = this.protoSkeletonScale; }
protected override void SharedGetSkeletonProto( ICharacter character, out ProtoCharacterSkeleton protoSkeleton, ref double scale) { // the skeleton in Editor mode will not be used, but it must be provided to avoid exception protoSkeleton = GetProtoEntity <SkeletonHumanMale>(); }
public override void ClientSetupSkeleton( IItem item, ICharacter character, ProtoCharacterSkeleton protoCharacterSkeleton, IComponentSkeleton skeletonRenderer, List <IClientComponent> skeletonComponents) { // do nothing }
protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { skeleton = GetProtoEntity <SkeletonSnakeBrown>(); // primary loot lootDroplist .Add <ItemToxin>(count: 1, countRandom: 1); }
public virtual void ClientSetupSkeleton( IItem item, ICharacter character, ProtoCharacterSkeleton protoCharacterSkeleton, IComponentSkeleton skeletonRenderer, List <IClientComponent> skeletonComponents) { protoCharacterSkeleton.ClientSetupItemInHand( skeletonRenderer, "WeaponMelee", this.CharacterTextureResource); }
protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { skeleton = GetProtoEntity <SkeletonPragmiumBeetle>(); // primary loot lootDroplist .Add <ItemInsectMeatRaw>(count: 1, countRandom: 1) .Add <ItemOrePragmium>(count: 1); }
protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { skeleton = GetProtoEntity <SkeletonStarfish>(); // random loot lootDroplist.Add <ItemSlime>(count: 1, countRandom: 1); // extra loot lootDroplist.Add <ItemSlime>(count: 1, condition: SkillHunting.ServerRollExtraLoot); }
protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { skeleton = GetProtoEntity <SkeletonWolf>(); // primary loot lootDroplist .Add <ItemFur>(count: 1, probability: 1 / 2.0) .Add <ItemBones>(count: 1) .Add <ItemAnimalFat>(count: 1, probability: 1 / 3.0); }
protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { skeleton = GetProtoEntity <SkeletonMutantHyena>(); // primary loot lootDroplist .Add <ItemFur>(count: 1, probability: 1 / 2.0) .Add <ItemBones>(count: 1) // requires device .Add <ItemKeiniteRaw>(count: 1, probability: 0.1, condition: ItemKeiniteCollector.ConditionHasDeviceEquipped); }
public override void ClientSetupSkeleton( IItem item, ICharacter character, ProtoCharacterSkeleton protoCharacterSkeleton, IComponentSkeleton skeletonRenderer, List <IClientComponent> skeletonComponents) { base.ClientSetupSkeleton(item, character, protoCharacterSkeleton, skeletonRenderer, skeletonComponents); this.ClientRefreshWeaponInHandSprite(item); }
protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { skeleton = GetProtoEntity <SkeletonCrab>(); // random loot lootDroplist .Add <ItemMeatRaw>(count: 1, probability: 1 / 2.0); // extra loot (with much lower chance) lootDroplist .Add <ItemMeatRaw>(count: 1, probability: 1 / 5.0, condition: SkillHunting.ServerRollExtraLoot); }
protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { skeleton = GetProtoEntity <SkeletonLargePragmiumBear>(); // primary loot lootDroplist .Add <ItemMeatRaw>(count: 2) .Add <ItemFur>(count: 2, countRandom: 1) .Add <ItemAnimalFat>(count: 2, countRandom: 1) .Add <ItemBones>(count: 2, countRandom: 1) .Add <ItemFishBass>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishBlackGoby>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishBlueGlider>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishBream>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishCarp>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishCatfish>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishChub>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishCrappie>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishGrunt>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishKoi>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishMackerel>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishMahimahi>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishPollock>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishPuffer>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishPyke>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishRooster>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishSalmon>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishSardine>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishTrout>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemFishYellowfinTuna>(count: 1, countRandom: 1, probability: 1 / 40.0) .Add <ItemOrePragmium>(count: 30, countRandom: 1) .Add <ItemPragmiumHeart>(count: 1, countRandom: 1, probability: 1 / 2.0); // chance for extra loot (2 bonus items) lootDroplist.Add(condition: SkillHunting.ServerRollExtraLoot, nestedList: new DropItemsList(outputs: 2) .Add <ItemMeatRaw>(count: 1) .Add <ItemFur>(count: 1) .Add <ItemAnimalFat>(count: 1) .Add <ItemBones>(count: 1) .Add <ItemOrePragmium>(count: 5)); }
protected override void SharedGetSkeletonProto( [CanBeNull] ICharacter character, out ProtoCharacterSkeleton protoSkeleton, ref double scale) { if (character == null) { protoSkeleton = SkeletonHumanMale.Value; return; } var isMale = GetPublicState(character).IsMale; protoSkeleton = isMale ? (SkeletonHuman)SkeletonHumanMale.Value : (SkeletonHuman)SkeletonHumanFemale.Value; }
protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { skeleton = GetProtoEntity <SkeletonWildBoar>(); // primary loot lootDroplist .Add <ItemMeatRaw>(count: 1) .Add <ItemLeather>(count: 1, probability: 1 / 2.0); // random loot lootDroplist.Add(nestedList: new DropItemsList(outputs: 1) .Add <ItemAnimalFat>(count: 1) .Add <ItemBones>(count: 1)); }
protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { skeleton = GetProtoEntity <SkeletonCrawler>(); // primary loot lootDroplist .Add <ItemToxin>(count: 1) .Add <ItemBones>(count: 1); // extra loot lootDroplist.Add(condition: SkillHunting.ServerRollExtraLoot, nestedList: new DropItemsList(outputs: 1) .Add <ItemToxin>(count: 1) .Add <ItemBones>(count: 1)); }
protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { skeleton = GetProtoEntity <SkeletonBlackBeetle>(); // primary loot lootDroplist .Add <ItemInsectMeatRaw>(count: 1, countRandom: 1) .Add <ItemSlime>(count: 2, countRandom: 1); // extra loot lootDroplist.Add(condition: SkillHunting.ServerRollExtraLoot, nestedList: new DropItemsList(outputs: 1) .Add <ItemInsectMeatRaw>(count: 1) .Add <ItemSlime>(count: 1)); }
protected override void PrepareProtoCharacterMob( out ProtoCharacterSkeleton skeleton, ref double scale, DropItemsList lootDroplist) { skeleton = GetProtoEntity <SkeletonChicken>(); // random loot lootDroplist.Add(nestedList: new DropItemsList(outputs: 1) .Add <ItemMeatRaw>(count: 1) .Add <ItemEggsRaw>(count: 1, weight: 1 / 2.0)); // extra loot lootDroplist.Add(condition: SkillHunting.ServerRollExtraLoot, nestedList: new DropItemsList(outputs: 1) .Add <ItemMeatRaw>(count: 1) .Add <ItemEggsRaw>(count: 1, weight: 1 / 2.0)); }